@arcgis/core 4.23.0-next.20220131 → 4.23.0-next.20220205
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/Graphic.js +1 -1
- package/TimeExtent.js +1 -1
- package/assets/components/assets/calcite-date-picker/nls/pt-BR.json +31 -0
- package/assets/components/assets/calcite-date-picker/nls/pt-PT.json +3 -3
- package/assets/components/assets/calcite-icon/clipboard16.json +1 -0
- package/assets/components/assets/calcite-icon/clipboard24.json +1 -0
- package/assets/components/assets/calcite-icon/clipboard32.json +1 -0
- package/assets/components/assets/calcite-icon/folders16.json +1 -0
- package/assets/components/assets/calcite-icon/folders24.json +1 -0
- package/assets/components/assets/calcite-icon/folders32.json +1 -0
- package/assets/components/assets/calcite-icon/initiative16.json +1 -0
- package/assets/components/assets/calcite-icon/initiative24.json +1 -0
- package/assets/components/assets/calcite-icon/initiative32.json +1 -0
- package/assets/components/assets/calcite-icon/initiativeTemplate16.json +1 -0
- package/assets/components/assets/calcite-icon/initiativeTemplate24.json +1 -0
- package/assets/components/assets/calcite-icon/initiativeTemplate32.json +1 -0
- package/assets/components/assets/calcite-icon/multipleVariables16.json +1 -0
- package/assets/components/assets/calcite-icon/multipleVariables24.json +1 -0
- package/assets/components/assets/calcite-icon/multipleVariables32.json +1 -0
- package/assets/components/assets/calcite-icon/paletteCheck16.json +1 -0
- package/assets/components/assets/calcite-icon/paletteCheck24.json +1 -0
- package/assets/components/assets/calcite-icon/paletteCheck32.json +1 -0
- package/assets/components/assets/calcite-icon/pentagon16.json +1 -0
- package/assets/components/assets/calcite-icon/pentagon24.json +1 -0
- package/assets/components/assets/calcite-icon/pentagon32.json +1 -0
- package/assets/components/assets/calcite-icon/puzzlePiece16.json +1 -0
- package/assets/components/assets/calcite-icon/puzzlePiece24.json +1 -0
- package/assets/components/assets/calcite-icon/puzzlePiece32.json +1 -0
- package/assets/components/assets/calcite-icon/ribbonRosette16.json +1 -0
- package/assets/components/assets/calcite-icon/ribbonRosette24.json +1 -0
- package/assets/components/assets/calcite-icon/ribbonRosette32.json +1 -0
- package/assets/components/assets/calcite-icon/speechBubbleExclamation16.json +1 -0
- package/assets/components/assets/calcite-icon/speechBubbleExclamation24.json +1 -0
- package/assets/components/assets/calcite-icon/speechBubbleExclamation32.json +1 -0
- package/assets/components/assets/calcite-icon/survey16.json +1 -0
- package/assets/components/assets/calcite-icon/survey24.json +1 -0
- package/assets/components/assets/calcite-icon/survey32.json +1 -0
- package/assets/esri/core/workers/RemoteClient.js +1 -1
- package/assets/esri/core/workers/chunks/{7a5f5acfbd4ca1a5c1f3.js → 06116433eb6e669f146b.js} +1 -1
- package/assets/esri/core/workers/chunks/0a4401a148c3cb73d6ff.js +1 -0
- package/assets/esri/core/workers/chunks/{83d00afae4406ec78bc9.js → 0c6be307709523eb8a05.js} +1 -1
- package/assets/esri/core/workers/chunks/{e0c8d61c7a85ce15499a.js → 0d9adefd00c44585be2e.js} +1 -1
- package/assets/esri/core/workers/chunks/{44f0c3663b293afbd172.js → 0e09691edb44641de5f0.js} +1 -1
- package/assets/esri/core/workers/chunks/0e215fa28a0448169132.js +1 -0
- package/assets/esri/core/workers/chunks/{391e96192d1ec4e55ce2.js → 101b4f02f0572afb666f.js} +1 -1
- package/assets/esri/core/workers/chunks/{db3c729ce0c0b2690dc9.js → 1180ffd523c6292bc04e.js} +1 -1
- package/assets/esri/core/workers/chunks/{826c983100569586b61f.js → 1571e8213feb518ff100.js} +1 -1
- package/assets/esri/core/workers/chunks/{929c9b7cdab7c4ca3d87.js → 17c51f5a13f471e6656a.js} +1 -1
- package/assets/esri/core/workers/chunks/{37c03cfc19086ce631c6.js → 18a8b9e2f6bd89827189.js} +1 -1
- package/assets/esri/core/workers/chunks/{ed0bcc66fb1e0ee75a4b.js → 1f34957ef42e5b5977d0.js} +1 -1
- package/assets/esri/core/workers/chunks/236de5f0476f6080ee62.js +1 -0
- package/assets/esri/core/workers/chunks/288ca064cd0472439276.js +1 -0
- package/assets/esri/core/workers/chunks/29aa6046534a43d7ce19.js +1 -0
- package/assets/esri/core/workers/chunks/2e1291cd831592216446.js +1 -0
- package/assets/esri/core/workers/chunks/{68a59ce98177d8513337.js → 3403cb53e4e60923c5fc.js} +1 -1
- package/assets/esri/core/workers/chunks/34bed896b68993cabaa1.js +1 -0
- package/assets/esri/core/workers/chunks/{99619fcb772807c74f3b.js → 444829a840b8ded16fd7.js} +1 -1
- package/assets/esri/core/workers/chunks/467b5faa1c90d9821609.js +1 -0
- package/assets/esri/core/workers/chunks/49353182a16218a84251.js +1 -0
- package/assets/esri/core/workers/chunks/{fc046a15466c25d081ff.js → 4a2e93b12d60e8d92491.js} +1 -1
- package/assets/esri/core/workers/chunks/4de996ebc432f5e149bc.js +1 -0
- package/assets/esri/core/workers/chunks/50976921acf7bd636123.js +1 -0
- package/assets/esri/core/workers/chunks/5144ef135e0deb48c7bf.js +1 -0
- package/assets/esri/core/workers/chunks/584bbb675ed225f68171.js +1 -0
- package/assets/esri/core/workers/chunks/5a90d121ba79613cc2aa.js +1 -0
- package/assets/esri/core/workers/chunks/5b286f3f3deea10bdd91.js +1 -0
- package/assets/esri/core/workers/chunks/{0463ba46df855a92b9c0.js → 65ccd204ec3053687a77.js} +1 -1
- package/assets/esri/core/workers/chunks/{1f8c6a179e39fd4c5e6f.js → 6a2b8d6a9bada45ab66d.js} +1 -1
- package/assets/esri/core/workers/chunks/6be326edd9829781d926.js +1 -0
- package/assets/esri/core/workers/chunks/6ea99a6e21b09674f6b3.js +1 -0
- package/assets/esri/core/workers/chunks/{5bcb3240b3c005e5fe72.js → 7215af7810d15e89aa5a.js} +1 -1
- package/assets/esri/core/workers/chunks/7509c1693ffedc0fa018.js +1 -0
- package/assets/esri/core/workers/chunks/7b0b75878370b3475fe5.js +1 -0
- package/assets/esri/core/workers/chunks/{bfedd6ebff817c9b31c0.js → 7b618c449d793aacd874.js} +1 -1
- package/assets/esri/core/workers/chunks/{2460f3b6ada6ae900dec.js → 7c0ff01f081c7e9050d2.js} +1 -1
- package/assets/esri/core/workers/chunks/806a7db0084214a53c79.js +1 -0
- package/assets/esri/core/workers/chunks/{8fa0a14165d43ffe87a5.js → 8325b577f52936f86cff.js} +1 -1
- package/assets/esri/core/workers/chunks/84d8e77d78d0d5134083.js +1 -0
- package/assets/esri/core/workers/chunks/{dd13772a5e2eccc6a2bc.js → 8598f762f15ca68d52b7.js} +1 -1
- package/assets/esri/core/workers/chunks/85b1ae51da3689bccf92.js +1 -0
- package/assets/esri/core/workers/chunks/873b0cbd343dc71755ed.js +1 -0
- package/assets/esri/core/workers/chunks/8804b8489eeab888275b.js +1 -0
- package/assets/esri/core/workers/chunks/{5ec98f4ddac707d0fbd1.js → 88815d533808aabb1fa9.js} +1 -1
- package/assets/esri/core/workers/chunks/8c8c0ecdf44fdbb56000.js +1 -0
- package/assets/esri/core/workers/chunks/{f2124f4d0f2b8a91f0ea.js → 90c5edcd8a609224ce55.js} +1 -1
- package/assets/esri/core/workers/chunks/{bac9fc90e6756e211160.js → 94d9951509c0db09547a.js} +1 -1
- package/assets/esri/core/workers/chunks/996d6ae7f2e2273f9bce.js +1 -0
- package/assets/esri/core/workers/chunks/{c1135cb02ec46c491459.js → 9ce961bc390202c87941.js} +1 -1
- package/assets/esri/core/workers/chunks/9fbc7d2e0326be41b382.js +1 -0
- package/assets/esri/core/workers/chunks/a363fb40096679b011f6.js +1 -0
- package/assets/esri/core/workers/chunks/a41522b0a853b85c8269.js +1 -0
- package/assets/esri/core/workers/chunks/a763c11d2b02b3ec36ad.js +1 -0
- package/assets/esri/core/workers/chunks/{aeaa1667c2d9f1b3366b.js → a85ed251d3d3668e474f.js} +1 -1
- package/assets/esri/core/workers/chunks/{69fd99b7c76e9992ccf3.js → b32bf9808cb4be3a6bd0.js} +1 -1
- package/assets/esri/core/workers/chunks/b33a6fbbc8de2969b1ca.js +1 -0
- package/assets/esri/core/workers/chunks/b548e6b3add4154ac4e6.js +1 -0
- package/assets/esri/core/workers/chunks/b6c55bdd8c957b062bc1.js +1 -0
- package/assets/esri/core/workers/chunks/b90509b2088fd444fc39.js +1 -0
- package/assets/esri/core/workers/chunks/{b9e9cb354822c6d995a4.js → bea473dba8e57617a71d.js} +1 -1
- package/assets/esri/core/workers/chunks/{0d02c6ad1f4688bfa374.js → bf7c44644fe7b0aa60cf.js} +1 -1
- package/assets/esri/core/workers/chunks/c1a70f025e90d97fac6d.js +1 -0
- package/assets/esri/core/workers/chunks/{d72488db62fcf39447b6.js → c23d965a55215168a1a2.js} +1 -1
- package/assets/esri/core/workers/chunks/c3192cfe115ce354ffbc.js +1 -0
- package/assets/esri/core/workers/chunks/c3d768801f2f6cb9d5d0.js +1 -0
- package/assets/esri/core/workers/chunks/d09a0b2dc3a6fc10fa41.js +1 -0
- package/assets/esri/core/workers/chunks/d21526570300597aa6ae.js +1 -0
- package/assets/esri/core/workers/chunks/d2ffb0f21363c0d3d2a9.js +1 -0
- package/assets/esri/core/workers/chunks/{ec10151a2a95e95a0bb5.js → d304fe0ac836afd46e3d.js} +1 -1
- package/assets/esri/core/workers/chunks/{37a7bd30352b1309b8f8.js → d3f05b8e4bd53eb1eb9d.js} +1 -1
- package/assets/esri/core/workers/chunks/{17de7a324dfa7f57ad5d.js → d780e946149b1c3d1246.js} +1 -1
- package/assets/esri/core/workers/chunks/dc037f1496bb4aa40d10.js +1 -0
- package/assets/esri/core/workers/chunks/{8cbb04a9065aa3756638.js → dc04a8ba6c770bdc2bd4.js} +1 -1
- package/assets/esri/core/workers/chunks/dd5a71818a989a6edb00.js +1 -0
- package/assets/esri/core/workers/chunks/{89820b200ee44e678af5.js → dd891a98105904f8a06b.js} +1 -1
- package/assets/esri/core/workers/chunks/e17edd48179d41ddf1e7.js +1 -0
- package/assets/esri/core/workers/chunks/e323086de328a164f7f0.js +1 -0
- package/assets/esri/core/workers/chunks/ea50a6a994e5ee578d97.js +1 -0
- package/assets/esri/core/workers/chunks/{655b55ac0cd533d7e9d7.js → ecf074743183c1749581.js} +1 -1
- package/assets/esri/core/workers/chunks/f067b4fc65b835437afd.js +1 -0
- package/assets/esri/core/workers/chunks/f0e5c82e9c4fbe3c9d0a.js +1 -0
- package/assets/esri/core/workers/chunks/f96b24c075771d028e20.js +1 -0
- package/assets/esri/core/workers/chunks/{5790d171072b3c7d108f.js → f9a6de00c628538f07f6.js} +1 -1
- package/assets/esri/core/workers/chunks/{2c607d30ff8ca1b61286.js → fe0c3b7c9b428d9c3f25.js} +1 -1
- package/assets/esri/core/workers/chunks/{49a1a633bb0d93764aae.js → fffea9587ec14c6d34e8.js} +1 -1
- package/assets/esri/themes/base/_mixins.scss +1 -1
- package/assets/esri/themes/base/widgets/_Directions.scss +0 -6
- package/assets/esri/themes/base/widgets/_Legend.scss +8 -7
- package/assets/esri/themes/dark/main.css +1 -1
- package/assets/esri/themes/dark-blue/main.css +1 -1
- package/assets/esri/themes/dark-green/main.css +1 -1
- package/assets/esri/themes/dark-purple/main.css +1 -1
- package/assets/esri/themes/dark-red/main.css +1 -1
- package/assets/esri/themes/light/main.css +1 -1
- package/assets/esri/themes/light/view.css +1 -1
- package/assets/esri/themes/light-blue/main.css +1 -1
- package/assets/esri/themes/light-green/main.css +1 -1
- package/assets/esri/themes/light-purple/main.css +1 -1
- package/assets/esri/themes/light-red/main.css +1 -1
- package/assets/esri/widgets/Directions/t9n/Directions.json +1 -1
- package/assets/esri/widgets/Directions/t9n/Directions_ar.json +1 -1
- package/assets/esri/widgets/Directions/t9n/Directions_bg.json +1 -1
- package/assets/esri/widgets/Directions/t9n/Directions_bs.json +1 -1
- package/assets/esri/widgets/Directions/t9n/Directions_ca.json +1 -1
- package/assets/esri/widgets/Directions/t9n/Directions_cs.json +1 -1
- package/assets/esri/widgets/Directions/t9n/Directions_da.json +1 -1
- package/assets/esri/widgets/Directions/t9n/Directions_de.json +1 -1
- package/assets/esri/widgets/Directions/t9n/Directions_el.json +1 -1
- package/assets/esri/widgets/Directions/t9n/Directions_en.json +1 -1
- package/assets/esri/widgets/Directions/t9n/Directions_es.json +1 -1
- package/assets/esri/widgets/Directions/t9n/Directions_et.json +1 -1
- package/assets/esri/widgets/Directions/t9n/Directions_fi.json +1 -1
- package/assets/esri/widgets/Directions/t9n/Directions_fr.json +1 -1
- package/assets/esri/widgets/Directions/t9n/Directions_he.json +1 -1
- package/assets/esri/widgets/Directions/t9n/Directions_hr.json +1 -1
- package/assets/esri/widgets/Directions/t9n/Directions_hu.json +1 -1
- package/assets/esri/widgets/Directions/t9n/Directions_id.json +1 -1
- package/assets/esri/widgets/Directions/t9n/Directions_it.json +1 -1
- package/assets/esri/widgets/Directions/t9n/Directions_ja.json +1 -1
- package/assets/esri/widgets/Directions/t9n/Directions_ko.json +1 -1
- package/assets/esri/widgets/Directions/t9n/Directions_lt.json +1 -1
- package/assets/esri/widgets/Directions/t9n/Directions_lv.json +1 -1
- package/assets/esri/widgets/Directions/t9n/Directions_nb.json +1 -1
- package/assets/esri/widgets/Directions/t9n/Directions_nl.json +1 -1
- package/assets/esri/widgets/Directions/t9n/Directions_pl.json +1 -1
- package/assets/esri/widgets/Directions/t9n/Directions_pt-BR.json +1 -1
- package/assets/esri/widgets/Directions/t9n/Directions_pt-PT.json +1 -1
- package/assets/esri/widgets/Directions/t9n/Directions_ro.json +1 -1
- package/assets/esri/widgets/Directions/t9n/Directions_ru.json +1 -1
- package/assets/esri/widgets/Directions/t9n/Directions_sk.json +1 -1
- package/assets/esri/widgets/Directions/t9n/Directions_sl.json +1 -1
- package/assets/esri/widgets/Directions/t9n/Directions_sr.json +1 -1
- package/assets/esri/widgets/Directions/t9n/Directions_sv.json +1 -1
- package/assets/esri/widgets/Directions/t9n/Directions_th.json +1 -1
- package/assets/esri/widgets/Directions/t9n/Directions_tr.json +1 -1
- package/assets/esri/widgets/Directions/t9n/Directions_uk.json +1 -1
- package/assets/esri/widgets/Directions/t9n/Directions_vi.json +1 -1
- package/assets/esri/widgets/Directions/t9n/Directions_zh-CN.json +1 -1
- package/assets/esri/widgets/Directions/t9n/Directions_zh-HK.json +1 -1
- package/assets/esri/widgets/Directions/t9n/Directions_zh-TW.json +1 -1
- package/chunks/Fog.glsl.js +12 -24
- package/chunks/Heatmap.glsl.js +10 -0
- package/chunks/HeatmapDensity.glsl.js +21 -0
- package/chunks/Precipitation.glsl.js +2 -2
- package/core/maybe.js +1 -1
- package/core/promiseUtils.js +1 -1
- package/interfaces.d.ts +2432 -231
- package/layers/ImageryTileLayer.js +1 -1
- package/layers/graphics/data/optimizedFeatureQueryEngineAdapter.js +1 -1
- package/layers/graphics/featureConversionUtils.js +1 -1
- package/layers/mixins/ArcGISImageService.js +1 -1
- package/layers/support/imageryRendererUtils.js +1 -1
- package/layers/support/rasterFunctions/pixelUtils.js +1 -1
- package/layers/support/rasterFunctions/vectorFieldUtils.js +1 -1
- package/package.json +2 -2
- package/rasterRenderers.js +1 -1
- package/renderers/DictionaryRenderer.js +1 -1
- package/renderers/FlowRenderer.d.ts +4 -0
- package/renderers/FlowRenderer.js +5 -0
- package/renderers/support/DictionaryLoader.js +5 -0
- package/renderers/support/RasterSymbolizer.js +1 -1
- package/renderers/support/rasterRendererHelper.js +1 -1
- package/renderers/support/rendererConversion.js +1 -1
- package/rest/geoprocessor/GPOptions.js +1 -1
- package/rest/print.js +1 -1
- package/rest/support/DirectionLine.js +1 -1
- package/rest/support/DirectionPoint.js +1 -1
- package/rest/support/FeatureSet.js +1 -1
- package/rest/support/LegendLayer.js +1 -1
- package/rest/support/LinearUnit.js +1 -1
- package/rest/support/PointBarrier.js +1 -1
- package/rest/support/PolygonBarrier.js +1 -1
- package/rest/support/PolylineBarrier.js +1 -1
- package/rest/support/RasterData.js +1 -1
- package/smartMapping/raster/renderers/flow.js +5 -0
- package/smartMapping/raster/support/utils.js +1 -1
- package/support/basemapUtils.js +1 -1
- package/support/featureFlags.js +1 -1
- package/support/revision.js +1 -1
- package/symbols/TextSymbol3DLayer.js +1 -1
- package/symbols/cim/effects/EffectArrow.js +1 -1
- package/symbols/support/Symbol3DHalo.js +1 -1
- package/symbols/support/Symbol3DTextBackground.js +5 -0
- package/symbols/support/previewSymbol2D.js +1 -1
- package/symbols/support/svgUtils.js +1 -1
- package/tasks/Geoprocessor.js +1 -1
- package/views/2d/FrameTask.js +1 -1
- package/views/2d/ViewState.js +1 -1
- package/views/2d/constraints/GeometryConstraint.js +1 -1
- package/views/2d/engine/BitmapTileContainer.js +1 -1
- package/views/2d/engine/DisplayObject.js +1 -1
- package/views/2d/engine/RasterTileContainer.js +1 -1
- package/views/2d/engine/RasterVFContainer.js +5 -0
- package/views/2d/engine/RasterVFDisplayObject.js +1 -1
- package/views/2d/engine/RasterVFTileContainer.js +1 -1
- package/views/2d/engine/Stage.js +1 -1
- package/views/2d/engine/flow/BrushFlow.js +1 -1
- package/views/2d/engine/flow/FlowDisplayData.js +1 -1
- package/views/2d/engine/flow/FlowGLResources.js +1 -1
- package/views/2d/engine/flow/FlowStyle.js +1 -1
- package/views/2d/engine/flow/FlowView2D.js +5 -0
- package/views/2d/engine/flow/dataUtils.js +1 -1
- package/views/2d/engine/flow/flowRendererUtils.js +5 -0
- package/views/2d/engine/webgl/AttributeStoreView.js +1 -1
- package/views/2d/engine/webgl/brushes/raster/BrushVectorField.js +1 -1
- package/views/2d/engine/webgl/cpuMapped/Buffer.js +1 -1
- package/views/2d/engine/webgl/mesh/templates/WGLBaseTextTemplate.js +1 -1
- package/views/2d/engine/webgl/shaders/sources/shaderRepository.js +1 -1
- package/views/2d/engine/webgl/util/Matcher.js +1 -1
- package/views/2d/input/handlers/DragPan.js +1 -1
- package/views/2d/layers/FeatureLayerView2D.js +1 -1
- package/views/2d/layers/ImageryLayerView2D.js +1 -1
- package/views/2d/layers/ImageryTileLayerView2D.js +1 -1
- package/views/2d/layers/KMLLayerView2D.js +1 -1
- package/views/2d/layers/LayerView2D.js +1 -1
- package/views/2d/layers/MapImageLayerView2D.js +1 -1
- package/views/2d/layers/TileLayerView2D.js +1 -1
- package/views/2d/layers/WMSLayerView2D.js +1 -1
- package/views/2d/layers/WMTSLayerView2D.js +1 -1
- package/views/2d/layers/features/Pipeline.js +1 -1
- package/views/2d/layers/features/createSymbolSchema.js +5 -0
- package/views/2d/layers/features/processors/HeatmapProcessor.js +1 -1
- package/views/2d/layers/features/processors/SymbolProcessor.js +1 -1
- package/views/2d/layers/features/schemaUtils.js +1 -1
- package/views/2d/layers/features/support/AttributeStore.js +1 -1
- package/views/2d/layers/features/support/ClusterStore.js +1 -1
- package/views/2d/layers/features/support/FeatureSetReaderJSON.js +1 -1
- package/views/2d/layers/features/tileRenderers/SymbolTileRenderer.js +1 -1
- package/views/2d/layers/graphics/GraphicsView2D.js +1 -1
- package/views/2d/layers/imagery/BaseImageryTileSubView2D.js +1 -1
- package/views/2d/layers/imagery/ImageryTileView2D.js +1 -1
- package/views/2d/layers/imagery/ImageryVFStrategy.js +5 -0
- package/views/2d/layers/imagery/ImageryView2D.js +1 -1
- package/views/2d/layers/imagery/VectorFieldTileView2D.js +1 -1
- package/views/2d/layers/imagery/VectorFieldView2D.js +5 -0
- package/views/2d/layers/support/FeatureCommandQueue.js +1 -1
- package/views/2d/navigation/MapViewNavigation.js +1 -1
- package/views/2d/navigation/actions/Pan.js +1 -1
- package/views/2d/viewpointUtils.js +1 -1
- package/views/3d/environment/EnvironmentRenderer.js +1 -1
- package/views/3d/environment/Fog.js +1 -1
- package/views/3d/environment/Precipitation.js +1 -1
- package/views/3d/environment/PrecipitationTechnique.js +1 -1
- package/views/3d/environment/SceneViewEnvironment.js +1 -1
- package/views/3d/environment/SimpleAtmosphere.js +1 -1
- package/views/3d/environment/weather.js +1 -1
- package/views/3d/interactive/analysisTools/lineOfSight/LineOfSightTool.js +1 -1
- package/views/3d/layerViewModuleImportUtils.js +1 -1
- package/views/3d/layers/FeatureLikeLayerView3D.js +1 -1
- package/views/3d/layers/GraphicsLayerView3D.js +1 -1
- package/views/3d/layers/IRouteLayerView3D.js +4 -0
- package/views/3d/layers/RouteLayerView3D.js +5 -0
- package/views/3d/layers/VectorTileLayerView3D.js +1 -1
- package/views/3d/layers/VoxelLayerView3D.js +1 -1
- package/views/3d/layers/graphics/Graphics3DFeatureProcessor.js +1 -1
- package/views/3d/layers/graphics/Graphics3DTextSymbolLayer.js +1 -1
- package/views/3d/layers/graphics/Graphics3DWebStyleSymbol.js +1 -1
- package/views/3d/layers/graphics/GraphicsProcessor.js +1 -1
- package/views/3d/layers/graphics/Labeler.js +1 -1
- package/views/3d/layers/graphics/graphicUtils.js +1 -1
- package/views/3d/layers/graphics/labelPlacement.js +1 -1
- package/views/3d/layers/support/HeatmapFeatureProcessor.js +1 -1
- package/views/3d/terrain/OverlayRenderer.js +1 -1
- package/views/3d/terrain/terrainUtils.js +1 -1
- package/views/3d/webgl-engine/lib/DrapedHeatmapRenderer.js +5 -0
- package/views/3d/webgl-engine/lib/TextRenderParameters.js +1 -1
- package/views/3d/webgl-engine/lib/TextRenderer.js +1 -1
- package/views/3d/webgl-engine/lib/TextTexture.js +1 -1
- package/views/3d/webgl-engine/materials/HeatmapDensityMaterial.js +5 -0
- package/views/3d/webgl-engine/shaders/Heatmap.glsl.js +5 -0
- package/views/3d/webgl-engine/shaders/HeatmapDensity.glsl.js +5 -0
- package/views/3d/webgl-engine/shaders/HeatmapDensityTechnique.js +5 -0
- package/views/3d/webgl-engine/shaders/HeatmapTechnique.js +5 -0
- package/views/MapView.js +1 -1
- package/views/ToolViewManager.js +1 -1
- package/views/View.js +1 -1
- package/views/draw/support/Box.js +1 -1
- package/views/draw/support/GraphicMover.js +1 -1
- package/views/draw/support/HighlightHelper.js +5 -0
- package/views/draw/support/Reshape.js +1 -1
- package/views/draw/support/layerUtils.js +1 -1
- package/views/interactive/InteractiveToolBase.js +1 -1
- package/views/support/WatchUpdatingTracking.js +1 -1
- package/views/support/projectionUtils.js +1 -1
- package/views/webgl/RenderingContext.js +1 -1
- package/views/webgl/enums.js +1 -1
- package/widgets/BasemapGallery/BasemapGalleryViewModel.js +1 -1
- package/widgets/BasemapGallery/support/BasemapGalleryItem.js +1 -1
- package/widgets/BasemapToggle/BasemapToggleViewModel.js +1 -1
- package/widgets/BasemapToggle.js +1 -1
- package/widgets/Directions/support/resources.js +1 -1
- package/widgets/Directions.js +1 -1
- package/widgets/FeatureTable/FeatureTableViewModel.js +1 -1
- package/widgets/FeatureTable/Grid/Grid.js +1 -1
- package/widgets/FeatureTable/support/FeatureStore.js +1 -1
- package/widgets/FeatureTable.js +1 -1
- package/widgets/Legend/styles/Card.js +1 -1
- package/widgets/Legend/support/ActiveLayerInfo.js +1 -1
- package/widgets/Legend/support/sizeRampUtils.js +1 -1
- package/widgets/ShadowCast/ShadowCastViewModel.js +1 -1
- package/widgets/Sketch/SketchViewModel.js +1 -1
- package/widgets/Sketch.js +1 -1
- package/widgets/TimeSlider.js +1 -1
- package/widgets/Weather/WeatherViewModel.js +1 -1
- package/widgets/Weather.js +1 -1
- package/widgets/Widget.js +1 -1
- package/widgets/support/InteractiveAnalysisViewModel.js +1 -1
- package/widgets/support/vnodeCache.js +5 -0
- package/widgets/support/widgetUtils.js +1 -1
- package/assets/esri/core/workers/chunks/0453fad5cb819797b4f6.js +0 -1
- package/assets/esri/core/workers/chunks/0c15d77d8e817cf45a9a.js +0 -1
- package/assets/esri/core/workers/chunks/0cd0a6eef51fc5b9ea61.js +0 -1
- package/assets/esri/core/workers/chunks/0d684f16f37d5dc385dd.js +0 -1
- package/assets/esri/core/workers/chunks/16b6d0f8378582c051c3.js +0 -1
- package/assets/esri/core/workers/chunks/1877ab1b6a115dbba1c5.js +0 -1
- package/assets/esri/core/workers/chunks/197ec52641aed20029c6.js +0 -1
- package/assets/esri/core/workers/chunks/1b2a961f776a0b57e57a.js +0 -1
- package/assets/esri/core/workers/chunks/1b3fd66577b19aa5f2b6.js +0 -1
- package/assets/esri/core/workers/chunks/1c733b7db092a2a88ef3.js +0 -1
- package/assets/esri/core/workers/chunks/2629adf79e7fd9f25f07.js +0 -1
- package/assets/esri/core/workers/chunks/27474b007988855bea9d.js +0 -1
- package/assets/esri/core/workers/chunks/2b25fc7945a187c2bb9d.js +0 -1
- package/assets/esri/core/workers/chunks/34b59d7099904dcb28b5.js +0 -1
- package/assets/esri/core/workers/chunks/422537fc3df707bb62c9.js +0 -1
- package/assets/esri/core/workers/chunks/483d5d8593d96d0f0b15.js +0 -1
- package/assets/esri/core/workers/chunks/4ba6de8aa7e2960bad49.js +0 -1
- package/assets/esri/core/workers/chunks/4be35af7d6babbfe9d84.js +0 -1
- package/assets/esri/core/workers/chunks/5457962a70bd3c557a75.js +0 -1
- package/assets/esri/core/workers/chunks/57856b4a9b8784a69844.js +0 -1
- package/assets/esri/core/workers/chunks/57b349d1dbc0bed75b79.js +0 -1
- package/assets/esri/core/workers/chunks/5d11b97b667921d67ae7.js +0 -1
- package/assets/esri/core/workers/chunks/5dbe555a5a662ff3d9ce.js +0 -1
- package/assets/esri/core/workers/chunks/64b7e8d812ea8fcf269e.js +0 -1
- package/assets/esri/core/workers/chunks/75d812955a473d0e8960.js +0 -1
- package/assets/esri/core/workers/chunks/94515fb3ef38067eeadd.js +0 -1
- package/assets/esri/core/workers/chunks/952980635afc7ec81804.js +0 -1
- package/assets/esri/core/workers/chunks/96f148a556a2418038de.js +0 -1
- package/assets/esri/core/workers/chunks/9876a1bae350795fab36.js +0 -1
- package/assets/esri/core/workers/chunks/a1930e4f035bc9aa1ae5.js +0 -1
- package/assets/esri/core/workers/chunks/a8692bffb76444c34760.js +0 -1
- package/assets/esri/core/workers/chunks/b3f5e91116112b0b612a.js +0 -1
- package/assets/esri/core/workers/chunks/ba762bcfd74af0bb8218.js +0 -1
- package/assets/esri/core/workers/chunks/be588873c16770ceb9ef.js +0 -1
- package/assets/esri/core/workers/chunks/bf6dda4a2af14c4b7716.js +0 -1
- package/assets/esri/core/workers/chunks/c2253a9f29c1aabb2b75.js +0 -1
- package/assets/esri/core/workers/chunks/c984b3040e120e502b11.js +0 -1
- package/assets/esri/core/workers/chunks/cdbc005eebec1503b99d.js +0 -1
- package/assets/esri/core/workers/chunks/d04fca5d46cca02500b7.js +0 -1
- package/assets/esri/core/workers/chunks/d1fe53b597351dc58305.js +0 -1
- package/assets/esri/core/workers/chunks/d98dab12b71912fa397b.js +0 -1
- package/assets/esri/core/workers/chunks/dedc333a61081772ca7b.js +0 -1
- package/assets/esri/core/workers/chunks/e218bde41ffbcc5194f5.js +0 -1
- package/assets/esri/core/workers/chunks/e287f49184d076af17e2.js +0 -1
- package/assets/esri/core/workers/chunks/e9e5196b44b6923be1a3.js +0 -1
- package/assets/esri/core/workers/chunks/ea595b0df5050eda2a13.js +0 -1
- package/assets/esri/core/workers/chunks/eb82ff10cef2bde6e57f.js +0 -1
- package/assets/esri/core/workers/chunks/ee6e0db58dc64410e687.js +0 -1
- package/assets/esri/core/workers/chunks/f0a9f161805fc7a30fc5.js +0 -1
- package/renderers/AnimatedFlowRenderer.d.ts +0 -4
- package/renderers/AnimatedFlowRenderer.js +0 -5
- package/views/2d/engine/flow/AnimatedFlowView2D.js +0 -5
- package/views/2d/engine/flow/animatedFlowRendererUtils.js +0 -5
- package/views/2d/layers/imagery/ImageryGraphicsView2D.js +0 -5
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.23/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{_ as e}from"../../../chunks/tslib.es6.js";import t from"../../../Graphic.js";import r from"../../../core/Accessor.js";import{equals as s,remove as i}from"../../../core/arrayUtils.js";import a from"../../../core/Collection.js";import o from"../../../core/Error.js";import{clone as n}from"../../../core/lang.js";import
|
|
5
|
+
import{_ as e}from"../../../chunks/tslib.es6.js";import t from"../../../Graphic.js";import r from"../../../core/Accessor.js";import{equals as s,remove as i}from"../../../core/arrayUtils.js";import a from"../../../core/Collection.js";import o from"../../../core/Error.js";import{clone as n}from"../../../core/lang.js";import h from"../../../core/Logger.js";import{property as u}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/accessorSupport/ensureType.js";import{subclass as y}from"../../../core/accessorSupport/decorators/subclass.js";import l from"../../../rest/support/AttachmentQuery.js";const c="esri.widgets.FeatureTable.support.FeatureStore",d=h.getLogger(c);function p(e,t,r){d.error(new o(e,t,r))}let m=class extends r{constructor(e){super(e),this._loaded=!1,this._loadError=!1,this._loading=!1,this._editOperationQueue=[],this._queryOperationQueue=[],this._objectIdCache=new a,this._hasStaleCache=!1,this.count=0,this.failures=new a,this.itemCache=new a,this.relatedRecordsEnabled=!1}destroy(){this.layer=null,this.itemCache&&this.itemCache.destroy(),this.failures&&this.failures.destroy(),this._set("itemCache",null)}set attachmentsEnabled(e){this._reset(),this._set("attachmentsEnabled",e),this.notifyChange("state")}set filterGeometry(e){this._reset(),this._set("filterGeometry",e),this.notifyChange("state")}set layer(e){this._reset(),this._set("layer",e),this.notifyChange("state")}set objectIds(e){this._reset(),this._set("objectIds",e||null),this.notifyChange("state")}get orderByFields(){return this._get("orderByFields")||[]}set orderByFields(e){const t=this.orderByFields;s(e,t)||(this.itemCache.removeAll(),this._hasStaleCache=!0,this._set("orderByFields",e))}get querying(){return this._queryOperationQueue.length>0}set returnGeometry(e){this._reset(),this._set("returnGeometry",e),this.notifyChange("state")}get state(){const{layer:e,_loaded:t,_loadError:r,_loading:s}=this;return r?"error":!e||this.get("layer.loadError")?"disabled":s?"loading":"loaded"===this.get("layer.loadStatus")&&t?"loaded":"ready"}get syncing(){return this._editOperationQueue.length>0}get where(){return this._get("where")||null}set where(e){this._reset(),this._set("where",e),this.notifyChange("state")}async load(){this._reset();const{layer:e}=this;if(!e)return Promise.resolve();this._loading=!0,this.notifyChange("state");try{await e.when(),await this._syncLayerInfo(),this._loading=!1,this._loaded=!0,this.notifyChange("state")}catch(t){throw this._reset(),this._loadError=!0,this.notifyChange("state"),p("store:load-error","An error ocurred.",{error:t}),t}}async addItems(e){}async fetchItems(e){const{page:t,pageSize:r}=e,s=t*r,i=s+r,{layer:a,state:o}=this;if(!a||"loaded"!==o)return Promise.resolve([]);this.notifyChange("querying");const n=await this._query({start:s,num:i,page:t,pageSize:r});return this.notifyChange("state"),n}async query(e){const{layer:t,state:r}=this;if(!t||"loaded"!==r)return[];this.notifyChange("querying");const s=await this._query(e);return this.notifyChange("state"),s}async removeItemAt(e){}async reset(){this._reset()}async updateItem(e){return this._update(e)}getItemByObjectId(e){const{itemCache:t,layer:{objectIdField:r}}=this;return t.find((t=>t.feature.attributes[r]===e))}getLocalItemAt(e){return this.itemCache.getItemAt(e)}getItemAt(e){return Promise.resolve(this.itemCache.getItemAt(e))}getObjectIdIndex(e){const{itemCache:t,layer:{objectIdField:r}}=this;return t.findIndex((t=>t.feature.attributes[r]===e))}_reset(){this.itemCache.removeAll(),this.failures.removeAll(),this._editOperationQueue=[],this._queryOperationQueue=[],this._hasStaleCache=!1,this._loading=!1,this._loaded=!1,this._loadError=!1,this._set("count",0),this._objectIdCache.removeAll(),this.notifyChange("querying"),this.notifyChange("syncing"),this.notifyChange("state")}_getIdsFromFeatures(e){return e.map((e=>e.attributes[this.layer.objectIdField]))}_toFeatureData(e,t){const{layer:{objectIdField:r}}=this;return e.map((e=>{const{attributes:s}=e,i=s[r];return{objectId:i,feature:e,attachments:t?t[i]:null,relatedRecords:null}}))}async _update(e){const{layer:r}=this,{operations:s}=r.capabilities;if(!s.supportsUpdate||"wfs"===r.type||"imagery"===r.type)throw new o("store:update-error","Update is not supported.");const{index:i,name:a,value:h}=e,u=await this.getItemAt(i);if(!u||!u.feature)throw new o("store:update-error","Feature with provided 'objectId' not found.");const{feature:y}=u,l=n(y.attributes);l[a]=h;const c=new t({attributes:l}),d=r.applyEdits({updateFeatures:[c]}).then((e=>{const{updateFeatureResults:t}=e,r=t.find((e=>!!e.error));if(r)throw r.error;return t.length&&(y.attributes=l),e}));return this._queueEditOperation((()=>d))}async _query(e){const{refresh:t}=e;return!0===t?(this.itemCache.removeAll(),this._syncLayerInfo().then((()=>this._queryFeatureData(e)))):(this._hasStaleCache&&(await this._updateIds(),this._hasStaleCache=!1),this._queryFeatureData(e))}async _queryFeatureData(e){return this._queueQueryOperation((async()=>{const{features:t}=await this._queryFeatures(e),r=this._getIdsFromFeatures(t),s=await this._queryAttachments(r);return this._toFeatureData(t,s)||[]}))}async _syncLayerInfo(){await this._updateCount(),await this._updateIds()}async _updateCount(){await this._queryCount().then((e=>this._set("count",e)))}async _updateIds(){var e,t,r;null!=(e=this.layer)&&null!=(t=e.capabilities)&&null!=(r=t.query)&&r.supportsPagination||(this._objectIdCache.removeAll(),await this._queryObjectIds().then((e=>this._objectIdCache.addMany(e))))}_queryCount(){const{filterGeometry:e,layer:t,returnGeometry:r}=this,s=t.createQuery();return s.geometry=e,s.returnGeometry=r,s.where=this._getWhere(),s.objectIds=this.objectIds,t.queryFeatureCount(s)}_queryObjectIds(){const{filterGeometry:e,layer:t,orderByFields:r,returnGeometry:s}=this,{capabilities:{query:{supportsCacheHint:i,supportsOrderBy:a}}}=t;if("geojson"===t.type||"wfs"===t.type||"imagery"===t.type)return Promise.resolve([]);const o=t.createQuery();return o.geometry=e,o.outFields=[t.objectIdField],o.returnGeometry=s,o.where=this._getWhere(),o.objectIds=this.objectIds,a&&(o.orderByFields=r),i&&(o.cacheHint=!0),t.queryObjectIds(o)}async _queryFeatures(e){const{layer:t}=this;if(!t.capabilities.operations.supportsQuery)return Promise.reject(new o("store:query-error","Layer does not support query operation."));const{filterGeometry:r,layer:{capabilities:{query:{supportsCacheHint:s,supportsOrderBy:i,supportsPagination:a}}},orderByFields:n,returnGeometry:h}=this,{start:u,pageSize:y}=e,l=t.createQuery();return l.returnGeometry=h,a?(l.start=u,l.num=y,l.where=this._getWhere()):l.objectIds=this._getObjectIdsForPage(u,y),i&&(l.orderByFields=n),r&&(l.geometry=r),l.objectIds=this.objectIds,s&&(l.cacheHint=!0),t.queryFeatures(l)}_getObjectIdsForPage(e,t){const r=this._objectIdCache.toArray();return r.length>=e+t?r.slice(e,e+t):r.slice(e)}_queryAttachments(e){const{attachmentsEnabled:t,layer:r}=this,{capabilities:{data:{supportsAttachment:s},operations:{supportsQueryAttachments:i}}}=r;return t&&s&&i&&"geojson"!==r.type&&"wfs"!==r.type&&"imagery"!==r.type?r.queryAttachments(new l({objectIds:e,where:this._getWhere()})):Promise.resolve(null)}_queueQueryOperation(e){return this._queryOperationQueue.push(e),this.notifyChange("querying"),e().then((t=>this._queryOperationQueue.indexOf(e)>-1?(this.itemCache.addMany(t),t):[])).catch((t=>{p("store:query-error","An error ocurred.",{error:t});const r={error:t,retry:()=>{this.failures.remove(r),this._queueQueryOperation(e)},cancel:()=>this.failures.remove(r)};return this.failures.add(r),[]})).then((t=>(i(this._queryOperationQueue,e),this.notifyChange("querying"),t)))}_queueEditOperation(e){return this._editOperationQueue.push(e),this.notifyChange("syncing"),e().then((()=>{i(this._editOperationQueue,e),this.notifyChange("syncing")})).catch((t=>{p("store:edit-error","An error ocurred.",{error:t});const r={error:t,retry:()=>{this.failures.remove(r),this._queueEditOperation(e)},cancel:()=>this.failures.remove(r)};throw this.failures.add(r),i(this._editOperationQueue,e),this.notifyChange("syncing"),t}))}_getWhere(){return this.where||this.layer.definitionExpression||"1=1"}};e([u()],m.prototype,"attachmentsEnabled",null),e([u({readOnly:!0})],m.prototype,"count",void 0),e([u({readOnly:!0})],m.prototype,"failures",void 0),e([u()],m.prototype,"filterGeometry",null),e([u({readOnly:!0})],m.prototype,"itemCache",void 0),e([u({value:null})],m.prototype,"layer",null),e([u({value:null})],m.prototype,"objectIds",null),e([u()],m.prototype,"orderByFields",null),e([u({readOnly:!0})],m.prototype,"querying",null),e([u()],m.prototype,"relatedRecordsEnabled",void 0),e([u({value:!1})],m.prototype,"returnGeometry",null),e([u({readOnly:!0})],m.prototype,"state",null),e([u({readOnly:!0})],m.prototype,"syncing",null),e([u()],m.prototype,"where",null),m=e([y(c)],m);const _=m;export{_ as default};
|
package/widgets/FeatureTable.js
CHANGED
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.23/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{_ as e}from"../chunks/tslib.es6.js";import"../intl.js";import t from"../core/Collection.js";import{HandleOwnerMixin as l}from"../core/HandleOwner.js";import{on as o,watch as
|
|
5
|
+
import{_ as e}from"../chunks/tslib.es6.js";import"../intl.js";import t from"../core/Collection.js";import{HandleOwnerMixin as l}from"../core/HandleOwner.js";import{on as o,watch as i}from"../core/reactiveUtils.js";import{aliasOf as s}from"../core/accessorSupport/decorators/aliasOf.js";import"../core/arrayUtils.js";import"../core/has.js";import{cast as n}from"../core/accessorSupport/decorators/cast.js";import{property as r}from"../core/accessorSupport/decorators/property.js";import{subclass as d}from"../core/accessorSupport/decorators/subclass.js";import a from"./Widget.js";import c from"./FeatureTable/FeatureTableViewModel.js";import u from"./FeatureTable/Grid/support/ButtonMenu.js";import h from"./FeatureTable/Grid/support/ButtonMenuItem.js";import"./support/widgetUtils.js";import{messageBundle as m}from"./support/decorators/messageBundle.js";import"../core/Logger.js";import{tsx as p}from"./support/jsxFactory.js";import{onLocaleChange as g}from"../intl/locale.js";import{substitute as v}from"../intl/substitute.js";import{fetchMessageBundle as w}from"../intl/messages.js";const b={header:!0,menu:!0,menuItems:{clearSelection:!0,refreshData:!0,toggleColumns:!0,selectedRecordsFilterToggle:!0},selectionColumn:!0,columnMenus:!0},f={base:"esri-feature-table",header:"esri-feature-table__header",title:"esri-feature-table__title",content:"esri-feature-table__content",loader:"esri-feature-table__loader",loaderContainer:"esri-feature-table__loader-container",menuContainer:"esri-feature-table__menu",menuIcon:"esri-icon-handle-horizontal",menuItemGroupOpenedIcon:"esri-icon-down",menuItemGroupClosedIcon:"esri-icon-right",checkmarkIcon:"esri-icon-check-mark",widget:"esri-widget"};let y=class extends(l(a)){constructor(e,l){super(e,l),this.attachmentsEnabled=null,this.columns=new t,this.editingEnabled=null,this.fieldConfigs=null,this.filterGeometry=null,this.grid=null,this.highlightOnRowSelectEnabled=!0,this.label=void 0,this.layer=null,this.messages=null,this.menu=null,this.menuConfig=null,this.pageSize=50,this.view=null,this.viewModel=new c,this.visibleElements={...b}}initialize(){var e,t,l;const s=async()=>this.messages=await w("esri/widgets/FeatureTable/t9n/FeatureTable");s(),this.handles.add([g(s),o((()=>this.viewModel.columns),"change",(()=>this._syncMenuConfig())),o((()=>this.viewModel.activeFilters),"change",(()=>this._syncMenuConfig())),o((()=>this.grid.selectedItems),"change",(e=>{this._syncMenuConfig(),this._onSelectionChange(e)})),i((()=>[this.viewModel.store.querying,this.viewModel.store.syncing]),(()=>this.scheduleRender())),i((()=>this.menuConfig),(()=>this._syncMenuConfig())),i((()=>this.messages),(()=>{var e;this.menu.label=null==(e=this.messages)?void 0:e.options,this._syncMenuConfig()}))]),this._set("menu",new u({label:null==(e=this.messages)?void 0:e.options,iconClass:f.menuIcon,...this.menuConfig}));const{attachmentsEnabled:n,relatedRecordsEnabled:r}=this;null==(t=this.viewModel)||null==(l=t.store)||l.set({attachmentsEnabled:n,relatedRecordsEnabled:r})}destroy(){var e;this.clearSelection(),this.handles.removeAll(),null==(e=this.menu)||e.destroy()}castVisibleElements(e){var t;const l={...b,...e};return null==(t=this.grid)||t.set("visibleElements",{...this.grid.visibleElements,selectionColumn:l.selectionColumn,columnMenus:l.columnMenus}),l}clearHighlights(){}clearSelection(){}deselectRows(){}filterBySelection(){}hideColumn(e){var t;null==(t=this.grid)||t.hideColumn(e),this._syncMenuConfig()}refresh(){}showColumn(e){var t;null==(t=this.grid)||t.showColumn(e),this._syncMenuConfig()}sortColumn(){}selectRows(){}scrollToIndex(){}render(){var e;return p("div",{bind:this,class:this.classes(f.base,f.widget)},this.visibleElements.header?this._renderHeader():null,p("div",{class:f.content},"disabled"!==this.state&&(null==(e=this.grid)?void 0:e.render())))}_renderHeader(){return p("div",{key:"header",class:f.header},this._renderLoader(),this._renderTitle(),this.visibleElements.menu?this._renderMenu():null)}_renderTitle(){return p("div",{class:f.title,key:"title"},this._getTitle())}_getTitle(){const{grid:e,layer:{title:t},messages:l,viewModel:{size:o}}=this;return e?v(l.header,{title:t,count:o,selected:e.selectedItems.length||0}):""}_renderLoader(){const{state:e,store:t}=this.viewModel,l="loading"===e||t.syncing||t.querying;return p("div",{class:f.loaderContainer},l?p("div",{class:f.loader,key:"loader"}):null)}_renderMenu(){return p("div",{class:f.menuContainer},this.menu.render())}_onSelectionChange(e){const{added:t,removed:l}=e;this.emit("selection-change",{added:[...t],removed:[...l]})}_syncMenuConfig(){var e;null==(e=this.menu)||e.set({...this.menuConfig,items:this._getMenuItems()})}_getMenuItems(){var e;const t=null==(e=this.menuConfig)?void 0:e.items,l=this._getDefaultMenuItems(),o=[];return(null==l?void 0:l.length)&&o.push(...l),(null==t?void 0:t.length)&&o.push(...t),o}_getDefaultMenuItems(){var e;const{messages:t,viewModel:l,visibleElements:o}=this,{menuItems:i}=o,s=[];if(null!=i&&i.selectedRecordsFilterToggle&&(this._hasActiveSelection()||this._hasSelectionFilter())){const e=this._getSelectedRecordsMenuItemTitle(),t=new h({selectionEnabled:!1,label:e,clickFunction:()=>{this._toggleSelectedRecordsView(),t.set("label",e)}});s.push(t)}return(null==i?void 0:i.clearSelection)&&s.push(new h({selectionEnabled:!1,label:null==t?void 0:t.clearSelection,clickFunction:()=>this.clearSelection()})),(null==i?void 0:i.refreshData)&&s.push(new h({selectionEnabled:!1,label:null==t?void 0:t.refreshData,clickFunction:()=>this.refresh()})),(null==i?void 0:i.toggleColumns)&&s.push(new h({iconClass:f.menuItemGroupClosedIcon,label:null==t?void 0:t.toggleColumns,clickFunction:this._toggleMenuItemSelectedIcon,items:null==l||null==(e=l.columns)?void 0:e.items.map((({header:e,hidden:t,path:l})=>new h({label:e||l,selected:!t,selectionEnabled:!0,iconClass:f.checkmarkIcon,clickFunction:()=>this._toggleColumnFromMenuItem(l)})))})),s.length?s:null}_getSelectedRecordsMenuItemTitle(){const{messages:e,viewModel:t}=this;return t.store.objectIds&&t.store.objectIds.length?e.showAllRecords:e.showSelected}_toggleMenuItemSelectedIcon({item:e}){null==e||e.set("iconClass",null!=e&&e.selected?f.menuItemGroupOpenedIcon:f.menuItemGroupClosedIcon)}_toggleColumnFromMenuItem(e){const{grid:t,viewModel:l}=this,o=l.findColumn(e);null!=o&&o.hidden?t.showColumn(e):t.hideColumn(e)}_toggleSelectedRecordsView(){this._hasSelectionFilter()?this.viewModel.removeSelectionFilter():this.viewModel.filterBySelection()}_hasActiveSelection(){return!!this.grid.selectedItems.map((e=>e.objectId)).length}_hasSelectionFilter(){return!!this.viewModel.activeFilters.find((e=>"selection"===e.type))}};e([s("viewModel.attachmentsEnabled")],y.prototype,"attachmentsEnabled",void 0),e([s("viewModel.columns")],y.prototype,"columns",void 0),e([s("viewModel.editingEnabled")],y.prototype,"editingEnabled",void 0),e([s("viewModel.fieldConfigs")],y.prototype,"fieldConfigs",void 0),e([s("viewModel.filterGeometry")],y.prototype,"filterGeometry",void 0),e([s("viewModel.grid")],y.prototype,"grid",void 0),e([s("viewModel.highlightOnRowSelectEnabled")],y.prototype,"highlightOnRowSelectEnabled",void 0),e([r({aliasOf:{source:"messages.widgetLabel",overridable:!0}})],y.prototype,"label",void 0),e([s("viewModel.layer")],y.prototype,"layer",void 0),e([r(),m("esri/widgets/FeatureTable/t9n/FeatureTable")],y.prototype,"messages",void 0),e([r({readOnly:!0})],y.prototype,"menu",void 0),e([r()],y.prototype,"menuConfig",void 0),e([s("viewModel.pageSize")],y.prototype,"pageSize",void 0),e([s("viewModel.relatedRecordsEnabled")],y.prototype,"relatedRecordsEnabled",void 0),e([s("viewModel.state")],y.prototype,"state",void 0),e([s("viewModel.view")],y.prototype,"view",void 0),e([r()],y.prototype,"viewModel",void 0),e([r()],y.prototype,"visibleElements",void 0),e([n("visibleElements")],y.prototype,"castVisibleElements",null),e([s("viewModel.clearHighlights")],y.prototype,"clearHighlights",null),e([s("viewModel.clearSelection")],y.prototype,"clearSelection",null),e([s("viewModel.deselectRows")],y.prototype,"deselectRows",null),e([s("viewModel.filterBySelection")],y.prototype,"filterBySelection",null),e([s("viewModel.refresh")],y.prototype,"refresh",null),e([s("viewModel.sortColumn")],y.prototype,"sortColumn",null),e([s("viewModel.selectRows")],y.prototype,"selectRows",null),e([s("viewModel.scrollToIndex")],y.prototype,"scrollToIndex",null),y=e([d("esri.widgets.FeatureTable")],y);const M=y;export{M as default};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.23/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{_ as e}from"../../../chunks/tslib.es6.js";import"../../../intl.js";import t from"../../../core/Handles.js";import{pt2px as s}from"../../../core/screenUtils.js";import{property as i}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/arrayUtils.js";import"../../../core/has.js";import"../../../core/accessorSupport/ensureType.js";import{subclass as r}from"../../../core/accessorSupport/decorators/subclass.js";import{renderSVG as a}from"../../../symbols/support/svgUtils.js";import{getCSSFilterFromEffectList as o}from"../../../symbols/support/utils.js";import l from"../../Widget.js";import{renderRelationshipRamp as n}from"./support/relationshipUtils.js";import{getUnivariateAboveAndBelowRampElements as c,getUnivariateSizeRampSize as d,getUnivariateColorRampSize as p,getUnivariateColorRampPreview as m,getUnivariateColorRampMargin as h,getUnivariateColorSizeRampElements as y}from"./support/univariateUtils.js";import{getTitle as g,attachToNode as _,isImageryStretchedLegend as v}from"../support/styleUtils.js";import{Heading as u,incrementHeadingLevel as f}from"../../support/Heading.js";import{accessibleHandler as b}from"../../support/decorators/accessibleHandler.js";import{messageBundle as w}from"../../support/decorators/messageBundle.js";import"../../../core/Logger.js";import{tsx as L}from"../../support/jsxFactory.js";import"../../support/widgetUtils.js";import{substitute as C}from"../../../intl/substitute.js";const x={activated:"esri-legend--card__carousel-indicator--activated",base:"esri-legend--card",stacked:"esri-legend--stacked",carouselTitle:"esri-legend--card__carousel-title",indicator:"esri-legend--card__carousel-indicator",intervalSeparator:"esri-legend--card__interval-separator",imageryLayerStretchedImage:"esri-legend--card__imagery-layer-image--stretched",imageLabel:"esri-legend--card__image-label",layerCaption:"esri-legend--card__layer-caption",labelElement:"esri-legend--card__label-element",layerRow:"esri-legend--card__layer-row",labelCell:"esri-legend--card__label-cell",message:"esri-legend--card__message",rampLabel:"esri-legend--card__ramp-label",section:"esri-legend--card__section",relationshipSection:"esri-legend--card__relationship-section",serviceCaptionText:"esri-legend--card__service-caption-text",serviceContent:"esri-legend--card__service-content",service:"esri-legend--card__service",groupLayer:"esri-legend--card__group-layer",groupLayerChild:"esri-legend--card__group-layer-child",symbol:"esri-legend--card__symbol",sizeRampRow:"esri-legend--card__size-ramp-row",symbolRow:"esri-legend--card__symbol-row",symbolCell:"esri-legend--card__symbol-cell",indicatorContainer:"esri-legend--card__carousel-indicator-container",intervalSeparatorsContainer:"esri-legend--card__interval-separators-container",relationshipLabelContainer:"esri-legend--card__relationship-label-container",labelContainer:"esri-legend--card__label-container",serviceCaptionContainer:"esri-legend--card__service-caption-container",symbolContainer:"esri-legend--card__symbol-container",sizeRampContainer:"esri-legend--card__size-ramp-container",sizeRampPreview:"esri-legend--card__size-ramp-preview",rampContainer:"esri-legend__ramps",sizeRampHorizontal:"esri-legend__size-ramp--horizontal",rampLabelsContainer:"esri-legend__ramp-labels",layerInfo:"esri-legend__layer-cell esri-legend__layer-cell--info",univariateAboveAndBelowColorRamp:"esri-univariate-above-and-below-ramp__color--card",hidden:"esri-hidden"},S=25,z=25,R=768,$=100;var I;!function(e){e.Auto="auto",e.Stack="stack",e.SideBySide="side-by-side"}(I||(I={}));const k="#ddd",A=window.devicePixelRatio;function N(e){if(e){if(e.type.indexOf("3d")>-1){const t=e.symbolLayers&&e.symbolLayers.length;if(!t)return;const s=e.symbolLayers.getItemAt(t-1),i=s.resource&&s.resource.primitive;return"circle"===i||"cross"===i||"kite"===i||"sphere"===i||"cube"===i||"diamond"===i}{const t=e.style;return"circle"===t||"diamond"===t||"cross"===t}}}function j(e){if(e){if(e.type.indexOf("3d")>-1){const t=e.symbolLayers&&e.symbolLayers.length;if(!t)return;const s=e.symbolLayers.getItemAt(t-1).get("resource.primitive");return"triangle"===s||"cone"===s||"tetrahedron"===s}return"triangle"===e.style}}let E=class extends l{constructor(e,s){super(e,s),this._handles=new t,this._hasIndicators=!1,this._selectedSectionName=null,this._sectionNames=[],this._sectionMap=new Map,this.activeLayerInfos=null,this.headingLevel=3,this.layout=I.Stack,this.messages=null,this.messagesCommon=null,this.type="card",this.view=null}initialize(){this.own([this.watch("activeLayerInfos",(e=>{this._handles.removeAll(),this._watchForSectionChanges(e)}))])}destroy(){this._handles.destroy(),this._handles=null}render(){this._hasIndicators=this.layout===I.Auto&&this.view.container.clientWidth<=R||this.layout===I.Stack;const e=this.activeLayerInfos,t=e&&e.toArray().map((e=>this._renderLegendForLayer(e))).filter((e=>!!e));this._hasIndicators?this._selectedSectionName&&-1!==this._sectionNames.indexOf(this._selectedSectionName)||(this._selectedSectionName=this._sectionNames&&this._sectionNames[0]):this._selectedSectionName=null;const s=this._sectionNames.length,i=this._sectionNames.map(((e,t)=>{const i=C(this.messagesCommon.pagination.pageText,{index:t+1,total:s});return L("div",{key:e,role:"tab",id:e,"aria-label":i,"aria-controls":`${e}-panel`,"aria-selected":(this._selectedSectionName===e).toString(),tabIndex:this._selectedSectionName===e?0:-1,title:i,onclick:this._selectSection,onkeydown:this._focusSection,bind:this,class:this.classes(x.indicator,{[x.activated]:this._selectedSectionName===e}),"data-section-name":e})})),r=this._hasIndicators&&s>1?L("div",{class:x.indicatorContainer,key:"carousel-navigation",role:"tablist"},i):null,a=this._hasIndicators?this._sectionMap.get(this._selectedSectionName):t&&t.length?t:null,o={[x.stacked]:this._hasIndicators};return L("div",{class:this.classes(x.base,o)},a||L("div",{class:x.message},this.messages.noLegend),r)}_selectSection(e){const t=e.target.getAttribute("data-section-name");t&&(this._selectedSectionName=t)}_focusSection(e){switch(e.key){case"ArrowLeft":case"ArrowRight":this._switchSectionOnArrowPress(e);break;case"Enter":case" ":this._selectSection(e)}}_switchSectionOnArrowPress(e){const t=e.key,s="ArrowLeft"===t?-1:1,i=e.target.getAttribute("data-section-name"),r=this._sectionNames.indexOf(i),a=this._sectionNames;let o=null;-1!==r&&(a[r+s]?o=document.getElementById(a[r+s]):"ArrowLeft"===t?o=document.getElementById(a[a.length-1]):"ArrowRight"===t&&(o=document.getElementById(a[0])),o&&o.focus())}_watchForSectionChanges(e){if(this._generateSectionNames(),e){e.forEach((e=>{const t=`activeLayerInfo-${e.layer.uid}-version-change`;this._handles.remove(t),this._watchForSectionChanges(e.children),this._handles.add(e.watch("version",(()=>this._generateSectionNames())),t)}));const t="activeLayerInfos-collection-change";this._handles.remove(t),this._handles.add(e.on("change",(()=>this._watchForSectionChanges(e))),t)}}_generateSectionNames(){this._sectionNames.length=0,this._selectedSectionName=null,this.activeLayerInfos&&this.activeLayerInfos.forEach(this._generateSectionNamesForActiveLayerInfo,this)}_getSectionName(e,t,s){return`${this.id}${e.uid}-type-${t.type}-${s}`}_generateSectionNamesForActiveLayerInfo(e){e.children.forEach(this._generateSectionNamesForActiveLayerInfo,this),e.legendElements&&e.legendElements.forEach(((t,s)=>{this._sectionNames.push(this._getSectionName(e.layer,t,s))}))}_renderLegendForLayer(e){if(!e.ready)return null;if(e.children.length){const t=e.children.map((e=>this._renderLegendForLayer(e))).toArray();return L("div",{key:e.layer.uid,class:this.classes(x.service,x.groupLayer)},L("div",{class:x.serviceCaptionContainer},e.title),t)}{const t=e.legendElements;if(t&&!t.length)return null;const s=t.some((e=>"relationship-ramp"===e.type)),i=t.map(((t,i)=>this._renderLegendForElement(t,e,i,s))).filter((e=>!!e));if(!i.length)return null;const r={[x.groupLayerChild]:!!e.parent};return L("div",{key:e.layer.uid,class:this.classes(x.service,r)},L("div",{class:x.serviceCaptionContainer},L("div",{class:x.serviceCaptionText},e.title)),L("div",{class:x.serviceContent},i))}}_renderLegendForElement(e,t,s,i=!1){const r="color-ramp"===e.type,a="opacity-ramp"===e.type,o="size-ramp"===e.type,l=t.layer;let c=null;if("string"==typeof e.title)c=e.title;else if(e.title){const t=e.title,s=g(this.messages,t,r||a);c=t.title?`${t.title} (${s})`:s}const d=this._getSectionName(l,e,s),p=this._hasIndicators?L("div",null,L(u,{level:this.headingLevel,class:x.carouselTitle},t.title),L(u,{level:f(this.headingLevel),class:x.layerCaption},c)):c?L(u,{level:this.headingLevel,class:x.layerCaption},c):null,m=t.effectList;let h=null;if("symbol-table"===e.type){const s=e.infos.map(((s,i)=>this._renderLegendForElementInfo(s,t,e.legendType,i))).filter((e=>!!e));if(s.length){const e=s[0].properties.classes&&s[0].properties.classes[x.symbolRow],t={[x.labelContainer]:!e&&!i,[x.relationshipLabelContainer]:i};h=L("div",{class:this.classes(t)},s)}}else"color-ramp"===e.type||"opacity-ramp"===e.type||"heatmap-ramp"===e.type?h=this._renderLegendForRamp(e,l.opacity,m):o?h=this._renderSizeRamp(e,l.opacity):"relationship-ramp"===e.type?h=n(e,this.id,l.opacity,m):"univariate-above-and-below-ramp"===e.type?h=this._renderUnivariateAboveAndBelowRamp(e,l.opacity,m):"univariate-color-size-ramp"===e.type&&(h=this._renderUnivariateColorSizeRamp(e,l.opacity,m));if(!h)return null;const y=L("div",{key:d,class:x.section,id:`${d}-panel`,role:"tabpanel","aria-labelledby":d,tabIndex:0},[p,h]);return this._sectionMap.set(d,y),y}_renderUnivariateAboveAndBelowRamp(e,t,s){const{sizeRampElement:i,colorRampElement:r}=c(e,t,"horizontal");if(!i)return null;const a=d(i,"full",!0,"horizontal"),o=p(i,"above",!0,"horizontal"),l=p(i,"below",!0,"horizontal"),n=12,y=m(r,{width:o,height:n,rampAlignment:"horizontal",opacity:t,type:"above",effectList:s}),g=m(r,{width:l,height:n,rampAlignment:"horizontal",opacity:t,type:"below",effectList:s}),v=h(i,"card"),u=i.infos.map((e=>e.label)),f=u.length-1,b=u.map(((e,t)=>0===t||t===f?L("div",{key:t},e):null)),w={display:"flex",flexDirection:"column"},C={display:"flex",flexDirection:"row"},S={marginTop:"3px",marginLeft:`${v}px`,display:"flex"},z={width:`${a}px`,display:"flex",flexDirection:"row",justifyContent:"space-between"};return L("div",{class:x.layerRow,key:"size-ramp-preview",styles:w},L("div",{class:this.classes(x.symbolContainer,x.sizeRampHorizontal),styles:C},i.infos.map(((e,t)=>L("div",{key:t,class:x.symbol,bind:e.preview,afterCreate:_})))),y?L("div",{class:x.univariateAboveAndBelowColorRamp,styles:S,key:"color-ramp-preview"},L("div",{bind:y,afterCreate:_}),L("div",{bind:g,afterCreate:_})):null,L("div",{class:x.layerInfo},L("div",{class:x.rampLabelsContainer,styles:z},b)))}_renderUnivariateColorSizeRamp(e,t,s){const{sizeRampElement:i,colorRampElement:r}=y(e,"horizontal");if(!i)return null;const a=d(i,"full",!1,"horizontal"),o=p(i,"full",!1,"horizontal"),l=m(r,{width:o,height:12,rampAlignment:"horizontal",opacity:t,type:"full",effectList:s}),n=h(i,"card"),c=i.infos.length-1,g=i.infos.map(((e,t)=>0===t||t===c?L("div",{key:t},e.label):null)),v={display:"flex",flexDirection:"column"},u={display:"flex",flexDirection:"row"},f={marginTop:"3px",marginLeft:`${n}px`,display:"flex"},b={width:`${a}px`,display:"flex",flexDirection:"row",justifyContent:"space-between"};return L("div",{class:x.layerRow,key:"size-ramp-preview",styles:v},L("div",{class:this.classes(x.symbolContainer,x.sizeRampHorizontal),styles:u},i.infos.map(((e,t)=>L("div",{key:t,class:x.symbol,bind:e.preview,afterCreate:_})))),L("div",{class:x.univariateAboveAndBelowColorRamp,styles:f,key:"color-ramp-preview"},L("div",{bind:l,afterCreate:_})),L("div",{class:x.layerInfo},L("div",{class:x.rampLabelsContainer,styles:b},g)))}_renderLegendForElementInfo(e,t,s,i){const r=t.layer;if(e.type)return this._renderLegendForElement(e,t,i);const a=v(r,s);if(e.preview){var l,n;if(!e.symbol||-1===e.symbol.type.indexOf("simple-fill")){if(!e.label)return L("div",{key:i,bind:e.preview,afterCreate:_});const t={[x.symbolCell]:this._hasIndicators};return L("div",{key:i,class:this.classes(x.layerRow,{[x.symbolRow]:this._hasIndicators})},L("div",{class:this.classes(t),bind:e.preview,afterCreate:_}),L("div",{class:this.classes(x.imageLabel,{[x.labelCell]:this._hasIndicators})},g(this.messages,e.label,!1)||""))}let s=255,a=255,c=255,d=0,p=255,m=255,h=255,y=0;const v=e.symbol.color&&e.symbol.color.a,u=e.symbol.outline&&e.symbol.outline.color&&e.symbol.outline.color.a;v&&(s=e.symbol.color.r,a=e.symbol.color.g,c=e.symbol.color.b,d=e.symbol.color.a*r.opacity),u&&(p=e.symbol.outline.color.r,m=e.symbol.outline.color.g,h=e.symbol.outline.color.b,y=e.symbol.outline.color.a*r.opacity);const f=null==(l=null==(n=e.symbol.color)?void 0:n.isBright)||l,b=f?"rgba(255, 255, 255, .6)":"rgba(0, 0, 0, .6)",w={background:v?`rgba(${s}, ${a}, ${c}, ${d})`:"none",color:f?"black":"white",textShadow:`-1px -1px 0 ${b},\n 1px -1px 0 ${b},\n -1px 1px 0 ${b},\n 1px 1px 0 ${b}`,border:u?`1px solid rgba(${p}, ${m}, ${h}, ${y})`:"none",filter:o(t.effectList)};return L("div",{key:i,class:x.layerRow},L("div",{class:x.labelElement,styles:w}," ",e.label," "))}if(e.src){const t=this._renderImage(e,r,a);return L("div",{key:i,class:x.layerRow},t,L("div",{class:x.imageLabel},e.label||""))}}_renderImage(e,t,s){const{label:i,src:r,opacity:a}=e,o={[x.imageryLayerStretchedImage]:s,[x.symbol]:!s},l={opacity:`${null!=a?a:t.opacity}`};return L("img",{alt:g(this.messages,i,!1),src:r,border:0,width:e.width,height:e.height,class:this.classes(o),styles:l})}_renderSizeRampLines(e){const t=e.infos,i=t[0],r=t[t.length-1],a=i.symbol,o=this._hasIndicators,l=s(i.size+i.outlineSize)*A,n=s(r.size+r.outlineSize)*A,c=o?l:l+50*A,d=o?l/2+50*A:l,p=j(a),m=N(a),h=document.createElement("canvas");h.width=c,h.height=d,h.style.width=h.width/A+"px",h.style.height=h.height/A+"px";const y=h.getContext("2d");if(o){y.beginPath();const e=0,t=0,s=c/2-n/2,i=d;y.moveTo(e,t),y.lineTo(s,i);const r=c,a=0,o=c/2+n/2,l=d;y.moveTo(r,a),y.lineTo(o,l)}else{y.beginPath();const e=0,t=d/2-n/2,s=c,i=0;y.moveTo(e,t),y.lineTo(s,i);const r=0,a=d/2+n/2,o=c,l=d;y.moveTo(r,a),y.lineTo(o,l)}return y.strokeStyle=k,y.stroke(),L("div",{bind:h,afterCreate:_,styles:o?{display:"flex",marginTop:`-${p?0:m?l/2:0}px`,marginBottom:`-${p?n:m?n/2:0}px`}:{display:"flex",marginRight:`-${p?0:m?l/2:0}px`,marginLeft:`-${p?0:m?n/2:0}px`}})}_renderSizeRamp(e,t){const s=e.infos,i=s[0].label,r=s[s.length-1].label;let a=s[0].preview,o=s[s.length-1].preview;const l=this._hasIndicators,n={"flex-direction":l?"column":"row-reverse"};a&&(a=a.cloneNode(!0),a.style.display="flex"),o&&(o=o.cloneNode(!0),o.style.display="flex");const c={opacity:null!=t?`${t}`:""};return L("div",{class:this.classes(x.layerRow,{[x.sizeRampRow]:l})},L("div",{class:x.rampLabel},l?i:r),L("div",{class:x.sizeRampContainer,styles:n},L("div",{bind:a,afterCreate:_,class:x.sizeRampPreview,styles:c}),this._renderSizeRampLines(e),L("div",{bind:o,afterCreate:_,class:x.sizeRampContainer,styles:c})),L("div",{class:x.rampLabel},l?r:i))}_renderLegendForRamp(e,t,s){const i=e.infos,r="heatmap-ramp"===e.type,l=i.length-1,n=z,c=l>2&&!r?S*l:$,d=c+20,p=10,m=i.slice(0).reverse();m.forEach(((e,t)=>{e.offset=r?e.ratio:t/l}));const h=m.length-1,y=m.length%2!=0&&m[m.length/2|0],g=y&&L("div",{class:x.intervalSeparatorsContainer},L("div",{class:x.intervalSeparator},"|"),L("div",{class:x.rampLabel},y.label)),_=i[i.length-1].label,v=i[0].label,u=[[{shape:{type:"path",path:`M0 ${n/2} L${p} 0 L${p} ${n} Z`},fill:m[0].color,stroke:{width:0}},{shape:{type:"rect",x:p,y:0,width:c,height:n},fill:{type:"linear",x1:p,y1:0,x2:c+p,y2:0,colors:m},stroke:{width:0}},{shape:{type:"path",path:`M${c+p} 0 L${d} ${n/2} L${c+p} ${n} Z`},fill:m[h].color,stroke:{width:0}}]],f=a(u,d,n),{messages:b}=this,w={filter:o(s),opacity:null==t?null:`${t}`};return L("div",{class:x.layerRow},L("div",{class:x.rampLabel},r?b[_]:_),L("div",{class:x.symbolContainer},L("div",{styles:w},f),g),L("div",{class:x.rampLabel},r?b[v]:v))}};e([i()],E.prototype,"activeLayerInfos",void 0),e([i()],E.prototype,"headingLevel",void 0),e([i()],E.prototype,"layout",void 0),e([i(),w("esri/widgets/Legend/t9n/Legend")],E.prototype,"messages",void 0),e([i(),w("esri/t9n/common")],E.prototype,"messagesCommon",void 0),e([i({readOnly:!0})],E.prototype,"type",void 0),e([i()],E.prototype,"view",void 0),e([b()],E.prototype,"_selectSection",null),E=e([r("esri.widgets.Legend.styles.Card")],E);const F=E;export{F as default};
|
|
5
|
+
import{_ as e}from"../../../chunks/tslib.es6.js";import"../../../intl.js";import t from"../../../core/Handles.js";import{pt2px as s}from"../../../core/screenUtils.js";import{property as i}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/arrayUtils.js";import"../../../core/has.js";import"../../../core/accessorSupport/ensureType.js";import{subclass as r}from"../../../core/accessorSupport/decorators/subclass.js";import{renderSVG as a}from"../../../symbols/support/svgUtils.js";import{getCSSFilterFromEffectList as o}from"../../../symbols/support/utils.js";import l from"../../Widget.js";import{renderRelationshipRamp as n}from"./support/relationshipUtils.js";import{getUnivariateAboveAndBelowRampElements as c,getUnivariateSizeRampSize as d,getUnivariateColorRampSize as p,getUnivariateColorRampPreview as m,getUnivariateColorRampMargin as h,getUnivariateColorSizeRampElements as y}from"./support/univariateUtils.js";import{getTitle as g,attachToNode as _,isImageryStretchedLegend as v}from"../support/styleUtils.js";import{Heading as u,incrementHeadingLevel as f}from"../../support/Heading.js";import{accessibleHandler as b}from"../../support/decorators/accessibleHandler.js";import{messageBundle as w}from"../../support/decorators/messageBundle.js";import"../../../core/Logger.js";import{tsx as L}from"../../support/jsxFactory.js";import{isRTL as C}from"../../support/widgetUtils.js";import{substitute as x}from"../../../intl/substitute.js";const S={activated:"esri-legend--card__carousel-indicator--activated",base:"esri-legend--card",stacked:"esri-legend--stacked",carouselTitle:"esri-legend--card__carousel-title",indicator:"esri-legend--card__carousel-indicator",intervalSeparator:"esri-legend--card__interval-separator",imageryLayerStretchedImage:"esri-legend--card__imagery-layer-image--stretched",imageLabel:"esri-legend--card__image-label",layerCaption:"esri-legend--card__layer-caption",labelElement:"esri-legend--card__label-element",layerRow:"esri-legend--card__layer-row",labelCell:"esri-legend--card__label-cell",message:"esri-legend--card__message",rampLabel:"esri-legend--card__ramp-label",section:"esri-legend--card__section",relationshipSection:"esri-legend--card__relationship-section",serviceCaptionText:"esri-legend--card__service-caption-text",serviceContent:"esri-legend--card__service-content",service:"esri-legend--card__service",groupLayer:"esri-legend--card__group-layer",groupLayerChild:"esri-legend--card__group-layer-child",symbol:"esri-legend--card__symbol",sizeRampRow:"esri-legend--card__size-ramp-row",symbolRow:"esri-legend--card__symbol-row",symbolCell:"esri-legend--card__symbol-cell",indicatorContainer:"esri-legend--card__carousel-indicator-container",intervalSeparatorsContainer:"esri-legend--card__interval-separators-container",relationshipLabelContainer:"esri-legend--card__relationship-label-container",labelContainer:"esri-legend--card__label-container",serviceCaptionContainer:"esri-legend--card__service-caption-container",symbolContainer:"esri-legend--card__symbol-container",sizeRampContainer:"esri-legend--card__size-ramp-container",sizeRampPreview:"esri-legend--card__size-ramp-preview",rampContainer:"esri-legend__ramps",sizeRampHorizontal:"esri-legend__size-ramp--horizontal",rampLabelsContainer:"esri-legend__ramp-labels",layerInfo:"esri-legend__layer-cell esri-legend__layer-cell--info",univariateAboveAndBelowColorRamp:"esri-univariate-above-and-below-ramp__color--card",hidden:"esri-hidden"},R=25,z=25,$=768,I=100;var k;!function(e){e.Auto="auto",e.Stack="stack",e.SideBySide="side-by-side"}(k||(k={}));const A="#ddd",N=window.devicePixelRatio;function j(e){if(e){if(e.type.indexOf("3d")>-1){const t=e.symbolLayers&&e.symbolLayers.length;if(!t)return;const s=e.symbolLayers.getItemAt(t-1),i=s.resource&&s.resource.primitive;return"circle"===i||"cross"===i||"kite"===i||"sphere"===i||"cube"===i||"diamond"===i}{const t=e.style;return"circle"===t||"diamond"===t||"cross"===t}}}function E(e){if(e){if(e.type.indexOf("3d")>-1){const t=e.symbolLayers&&e.symbolLayers.length;if(!t)return;const s=e.symbolLayers.getItemAt(t-1).get("resource.primitive");return"triangle"===s||"cone"===s||"tetrahedron"===s}return"triangle"===e.style}}let F=class extends l{constructor(e,s){super(e,s),this._handles=new t,this._hasIndicators=!1,this._selectedSectionName=null,this._sectionNames=[],this._sectionMap=new Map,this.activeLayerInfos=null,this.headingLevel=3,this.layout=k.Stack,this.messages=null,this.messagesCommon=null,this.type="card",this.view=null}initialize(){this.own([this.watch("activeLayerInfos",(e=>{this._handles.removeAll(),this._watchForSectionChanges(e)}))])}destroy(){this._handles.destroy(),this._handles=null}render(){this._hasIndicators=this.layout===k.Auto&&this.view.container.clientWidth<=$||this.layout===k.Stack;const e=this.activeLayerInfos,t=e&&e.toArray().map((e=>this._renderLegendForLayer(e))).filter((e=>!!e));this._hasIndicators?this._selectedSectionName&&-1!==this._sectionNames.indexOf(this._selectedSectionName)||(this._selectedSectionName=this._sectionNames&&this._sectionNames[0]):this._selectedSectionName=null;const s=this._sectionNames.length,i=this._sectionNames.map(((e,t)=>{const i=x(this.messagesCommon.pagination.pageText,{index:t+1,total:s});return L("div",{key:e,role:"tab",id:e,"aria-label":i,"aria-controls":`${e}-panel`,"aria-selected":(this._selectedSectionName===e).toString(),tabIndex:this._selectedSectionName===e?0:-1,title:i,onclick:this._selectSection,onkeydown:this._focusSection,bind:this,class:this.classes(S.indicator,{[S.activated]:this._selectedSectionName===e}),"data-section-name":e})})),r=this._hasIndicators&&s>1?L("div",{class:S.indicatorContainer,key:"carousel-navigation",role:"tablist"},i):null,a=this._hasIndicators?this._sectionMap.get(this._selectedSectionName):t&&t.length?t:null,o={[S.stacked]:this._hasIndicators};return L("div",{class:this.classes(S.base,o)},a||L("div",{class:S.message},this.messages.noLegend),r)}_selectSection(e){const t=e.target.getAttribute("data-section-name");t&&(this._selectedSectionName=t)}_focusSection(e){switch(e.key){case"ArrowLeft":case"ArrowRight":this._switchSectionOnArrowPress(e);break;case"Enter":case" ":this._selectSection(e)}}_switchSectionOnArrowPress(e){const t=e.key,s="ArrowLeft"===t?-1:1,i=e.target.getAttribute("data-section-name"),r=this._sectionNames.indexOf(i),a=this._sectionNames;let o=null;-1!==r&&(a[r+s]?o=document.getElementById(a[r+s]):"ArrowLeft"===t?o=document.getElementById(a[a.length-1]):"ArrowRight"===t&&(o=document.getElementById(a[0])),o&&o.focus())}_watchForSectionChanges(e){if(this._generateSectionNames(),e){e.forEach((e=>{const t=`activeLayerInfo-${e.layer.uid}-version-change`;this._handles.remove(t),this._watchForSectionChanges(e.children),this._handles.add(e.watch("version",(()=>this._generateSectionNames())),t)}));const t="activeLayerInfos-collection-change";this._handles.remove(t),this._handles.add(e.on("change",(()=>this._watchForSectionChanges(e))),t)}}_generateSectionNames(){this._sectionNames.length=0,this._selectedSectionName=null,this.activeLayerInfos&&this.activeLayerInfos.forEach(this._generateSectionNamesForActiveLayerInfo,this)}_getSectionName(e,t,s){return`${this.id}${e.uid}-type-${t.type}-${s}`}_generateSectionNamesForActiveLayerInfo(e){e.children.forEach(this._generateSectionNamesForActiveLayerInfo,this),e.legendElements&&e.legendElements.forEach(((t,s)=>{this._sectionNames.push(this._getSectionName(e.layer,t,s))}))}_renderLegendForLayer(e){if(!e.ready)return null;if(e.children.length){const t=e.children.map((e=>this._renderLegendForLayer(e))).toArray();return L("div",{key:e.layer.uid,class:this.classes(S.service,S.groupLayer)},L("div",{class:S.serviceCaptionContainer},e.title),t)}{const t=e.legendElements;if(t&&!t.length)return null;const s=t.some((e=>"relationship-ramp"===e.type)),i=t.map(((t,i)=>this._renderLegendForElement(t,e,i,s))).filter((e=>!!e));if(!i.length)return null;const r={[S.groupLayerChild]:!!e.parent};return L("div",{key:e.layer.uid,class:this.classes(S.service,r)},L("div",{class:S.serviceCaptionContainer},L("div",{class:S.serviceCaptionText},e.title)),L("div",{class:S.serviceContent},i))}}_renderLegendForElement(e,t,s,i=!1){const r="color-ramp"===e.type,a="opacity-ramp"===e.type,o="size-ramp"===e.type,l=t.layer;let c=null;if("string"==typeof e.title)c=e.title;else if(e.title){const t=e.title,s=g(this.messages,t,r||a);c=t.title?`${t.title} (${s})`:s}const d=this._getSectionName(l,e,s),p=this._hasIndicators?L("div",null,L(u,{level:this.headingLevel,class:S.carouselTitle},t.title),L(u,{level:f(this.headingLevel),class:S.layerCaption},c)):c?L(u,{level:this.headingLevel,class:S.layerCaption},c):null,m=t.effectList;let h=null;if("symbol-table"===e.type){const s=e.infos.map(((s,i)=>this._renderLegendForElementInfo(s,t,e.legendType,i))).filter((e=>!!e));if(s.length){const e=s[0].properties.classes&&s[0].properties.classes[S.symbolRow],t={[S.labelContainer]:!e&&!i,[S.relationshipLabelContainer]:i};h=L("div",{class:this.classes(t)},s)}}else"color-ramp"===e.type||"opacity-ramp"===e.type||"heatmap-ramp"===e.type?h=this._renderLegendForRamp(e,l.opacity,m):o?h=this._renderSizeRamp(e,l.opacity):"relationship-ramp"===e.type?h=n(e,this.id,l.opacity,m):"univariate-above-and-below-ramp"===e.type?h=this._renderUnivariateAboveAndBelowRamp(e,l.opacity,m):"univariate-color-size-ramp"===e.type&&(h=this._renderUnivariateColorSizeRamp(e,l.opacity,m));if(!h)return null;const y=L("div",{key:d,class:S.section,id:`${d}-panel`,role:"tabpanel","aria-labelledby":d,tabIndex:0},[p,h]);return this._sectionMap.set(d,y),y}_renderUnivariateAboveAndBelowRamp(e,t,s){const{sizeRampElement:i,colorRampElement:r}=c(e,t,"horizontal");if(!i)return null;const a=d(i,"full",!0,"horizontal"),o=p(i,"above",!0,"horizontal"),l=p(i,"below",!0,"horizontal"),n=12,y=m(r,{width:o,height:n,rampAlignment:"horizontal",opacity:t,type:"above",effectList:s}),g=m(r,{width:l,height:n,rampAlignment:"horizontal",opacity:t,type:"below",effectList:s}),v=h(i,"card"),u=i.infos.map((e=>e.label)),f=u.length-1,b=u.map(((e,t)=>0===t||t===f?L("div",{key:t},e):null)),w={display:"flex",flexDirection:"column"},x={display:"flex",flexDirection:"row"},R={marginTop:"3px",display:"flex"};C(this.container)?R.marginRight=`${v}px`:R.marginLeft=`${v}px`;const z={width:`${a}px`,display:"flex",flexDirection:"row",justifyContent:"space-between"};return L("div",{class:S.layerRow,key:"size-ramp-preview",styles:w},L("div",{class:this.classes(S.symbolContainer,S.sizeRampHorizontal),styles:x},i.infos.map(((e,t)=>L("div",{key:t,class:S.symbol,bind:e.preview,afterCreate:_})))),y?L("div",{class:S.univariateAboveAndBelowColorRamp,styles:R,key:"color-ramp-preview"},L("div",{bind:y,afterCreate:_}),L("div",{bind:g,afterCreate:_})):null,L("div",{class:S.layerInfo},L("div",{class:S.rampLabelsContainer,styles:z},b)))}_renderUnivariateColorSizeRamp(e,t,s){const{sizeRampElement:i,colorRampElement:r}=y(e,"horizontal");if(!i)return null;const a=d(i,"full",!1,"horizontal"),o=p(i,"full",!1,"horizontal"),l=m(r,{width:o,height:12,rampAlignment:"horizontal",opacity:t,type:"full",effectList:s}),n=h(i,"card"),c=i.infos.length-1,g=i.infos.map(((e,t)=>0===t||t===c?L("div",{key:t},e.label):null)),v={display:"flex",flexDirection:"column"},u={display:"flex",flexDirection:"row"},f={marginTop:"3px",display:"flex"};C(this.container)?f.marginRight=`${n}px`:f.marginLeft=`${n}px`;const b={width:`${a}px`,display:"flex",flexDirection:"row",justifyContent:"space-between"};return L("div",{class:S.layerRow,key:"size-ramp-preview",styles:v},L("div",{class:this.classes(S.symbolContainer,S.sizeRampHorizontal),styles:u},i.infos.map(((e,t)=>L("div",{key:t,class:S.symbol,bind:e.preview,afterCreate:_})))),L("div",{class:S.univariateAboveAndBelowColorRamp,styles:f,key:"color-ramp-preview"},L("div",{bind:l,afterCreate:_})),L("div",{class:S.layerInfo},L("div",{class:S.rampLabelsContainer,styles:b},g)))}_renderLegendForElementInfo(e,t,s,i){const r=t.layer;if(e.type)return this._renderLegendForElement(e,t,i);const a=v(r,s);if(e.preview){var l,n;if(!e.symbol||-1===e.symbol.type.indexOf("simple-fill")){if(!e.label)return L("div",{key:i,bind:e.preview,afterCreate:_});const t={[S.symbolCell]:this._hasIndicators};return L("div",{key:i,class:this.classes(S.layerRow,{[S.symbolRow]:this._hasIndicators})},L("div",{class:this.classes(t),bind:e.preview,afterCreate:_}),L("div",{class:this.classes(S.imageLabel,{[S.labelCell]:this._hasIndicators})},g(this.messages,e.label,!1)||""))}let s=255,a=255,c=255,d=0,p=255,m=255,h=255,y=0;const v=e.symbol.color&&e.symbol.color.a,u=e.symbol.outline&&e.symbol.outline.color&&e.symbol.outline.color.a;v&&(s=e.symbol.color.r,a=e.symbol.color.g,c=e.symbol.color.b,d=e.symbol.color.a*r.opacity),u&&(p=e.symbol.outline.color.r,m=e.symbol.outline.color.g,h=e.symbol.outline.color.b,y=e.symbol.outline.color.a*r.opacity);const f=null==(l=null==(n=e.symbol.color)?void 0:n.isBright)||l,b=f?"rgba(255, 255, 255, .6)":"rgba(0, 0, 0, .6)",w={background:v?`rgba(${s}, ${a}, ${c}, ${d})`:"none",color:f?"black":"white",textShadow:`-1px -1px 0 ${b},\n 1px -1px 0 ${b},\n -1px 1px 0 ${b},\n 1px 1px 0 ${b}`,border:u?`1px solid rgba(${p}, ${m}, ${h}, ${y})`:"none",filter:o(t.effectList)};return L("div",{key:i,class:S.layerRow},L("div",{class:S.labelElement,styles:w}," ",e.label," "))}if(e.src){const t=this._renderImage(e,r,a);return L("div",{key:i,class:S.layerRow},t,L("div",{class:S.imageLabel},e.label||""))}}_renderImage(e,t,s){const{label:i,src:r,opacity:a}=e,o={[S.imageryLayerStretchedImage]:s,[S.symbol]:!s},l={opacity:`${null!=a?a:t.opacity}`};return L("img",{alt:g(this.messages,i,!1),src:r,border:0,width:e.width,height:e.height,class:this.classes(o),styles:l})}_renderSizeRampLines(e){const t=e.infos,i=t[0],r=t[t.length-1],a=i.symbol,o=this._hasIndicators,l=s(i.size+i.outlineSize)*N,n=s(r.size+r.outlineSize)*N,c=o?l:l+50*N,d=o?l/2+50*N:l,p=E(a),m=j(a),h=document.createElement("canvas");h.width=c,h.height=d,h.style.width=h.width/N+"px",h.style.height=h.height/N+"px";const y=h.getContext("2d");if(o){y.beginPath();const e=0,t=0,s=c/2-n/2,i=d;y.moveTo(e,t),y.lineTo(s,i);const r=c,a=0,o=c/2+n/2,l=d;y.moveTo(r,a),y.lineTo(o,l)}else{y.beginPath();const e=0,t=d/2-n/2,s=c,i=0;y.moveTo(e,t),y.lineTo(s,i);const r=0,a=d/2+n/2,o=c,l=d;y.moveTo(r,a),y.lineTo(o,l)}return y.strokeStyle=A,y.stroke(),L("div",{bind:h,afterCreate:_,styles:o?{display:"flex",marginTop:`-${p?0:m?l/2:0}px`,marginBottom:`-${p?n:m?n/2:0}px`}:{display:"flex",marginRight:`-${p?0:m?l/2:0}px`,marginLeft:`-${p?0:m?n/2:0}px`}})}_renderSizeRamp(e,t){const s=e.infos,i=s[0].label,r=s[s.length-1].label;let a=s[0].preview,o=s[s.length-1].preview;const l=this._hasIndicators,n={"flex-direction":l?"column":"row-reverse"};a&&(a=a.cloneNode(!0),a.style.display="flex"),o&&(o=o.cloneNode(!0),o.style.display="flex");const c={opacity:null!=t?`${t}`:""};return L("div",{class:this.classes(S.layerRow,{[S.sizeRampRow]:l})},L("div",{class:S.rampLabel},l?i:r),L("div",{class:S.sizeRampContainer,styles:n},L("div",{bind:a,afterCreate:_,class:S.sizeRampPreview,styles:c}),this._renderSizeRampLines(e),L("div",{bind:o,afterCreate:_,class:S.sizeRampContainer,styles:c})),L("div",{class:S.rampLabel},l?r:i))}_renderLegendForRamp(e,t,s){const i=e.infos,r="heatmap-ramp"===e.type,l=i.length-1,n=z,c=l>2&&!r?R*l:I,d=c+20,p=10,m=i.slice(0).reverse();m.forEach(((e,t)=>{e.offset=r?e.ratio:t/l}));const h=m.length-1,y=m.length%2!=0&&m[m.length/2|0],g=y&&L("div",{class:S.intervalSeparatorsContainer},L("div",{class:S.intervalSeparator},"|"),L("div",{class:S.rampLabel},y.label)),_=i[i.length-1].label,v=i[0].label,u=[[{shape:{type:"path",path:`M0 ${n/2} L${p} 0 L${p} ${n} Z`},fill:m[0].color,stroke:{width:0}},{shape:{type:"rect",x:p,y:0,width:c,height:n},fill:{type:"linear",x1:p,y1:0,x2:c+p,y2:0,colors:m},stroke:{width:0}},{shape:{type:"path",path:`M${c+p} 0 L${d} ${n/2} L${c+p} ${n} Z`},fill:m[h].color,stroke:{width:0}}]],f=a(u,d,n),{messages:b}=this,w={filter:o(s),opacity:null==t?null:`${t}`};return L("div",{class:S.layerRow},L("div",{class:S.rampLabel},r?b[_]:_),L("div",{class:S.symbolContainer},L("div",{styles:w},f),g),L("div",{class:S.rampLabel},r?b[v]:v))}};e([i()],F.prototype,"activeLayerInfos",void 0),e([i()],F.prototype,"headingLevel",void 0),e([i()],F.prototype,"layout",void 0),e([i(),w("esri/widgets/Legend/t9n/Legend")],F.prototype,"messages",void 0),e([i(),w("esri/t9n/common")],F.prototype,"messagesCommon",void 0),e([i({readOnly:!0})],F.prototype,"type",void 0),e([i()],F.prototype,"view",void 0),e([b()],F.prototype,"_selectSection",null),F=e([r("esri.widgets.Legend.styles.Card")],F);const T=F;export{T as default};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.23/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{_ as e}from"../../../chunks/tslib.es6.js";import t from"../../../Color.js";import{addTokenParameter as l}from"../../../kernel.js";import s from"../../../request.js";import"../../../symbols.js";import r from"../../../core/Accessor.js";import i from"../../../core/Collection.js";import n from"../../../core/Handles.js";import{JSONMap as a}from"../../../core/jsonMap.js";import o from"../../../core/Logger.js";import{unwrap as u,isSome as c}from"../../../core/maybe.js";import{eachAlways as d,debounce as y}from"../../../core/promiseUtils.js";import{px2pt as h}from"../../../core/screenUtils.js";import{addQueryParameters as m}from"../../../core/urlUtils.js";import{on as p,init as f,whenFalseOnce as g,watch as b}from"../../../core/watchUtils.js";import{property as S}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/arrayUtils.js";import"../../../core/has.js";import"../../../core/accessorSupport/ensureType.js";import{subclass as _}from"../../../core/accessorSupport/decorators/subclass.js";import{OriginId as v}from"../../../core/accessorSupport/PropertyOrigin.js";import w from"../../../layers/effects/EffectView.js";import{effectFunctionsFromJSON as L}from"../../../layers/effects/jsonUtils.js";import{ExportImageParameters as E}from"../../../layers/support/ExportImageParameters.js";import{isDateField as I}from"../../../layers/support/fieldUtils.js";import{fromJSON as C}from"../../../renderers/support/jsonUtils.js";import{isSupportedRenderer3D as R}from"../../../renderers/support/rendererConversion.js";import V from"../../../renderers/visualVariables/support/SizeVariableLegendOptions.js";import{applyCIMSymbolColor as F}from"../../../symbols/support/cimSymbolUtils.js";import{SymbolSizeDefaults as T}from"../../../symbols/support/previewUtils.js";import{renderSymbol as z}from"../../../symbols/support/renderUtils.js";import{renderColorRampPreviewHTML as x,renderDotDensityPreviewHTML as j,renderPreviewHTML as O}from"../../../symbols/support/symbolUtils.js";import{isVolumetricSymbol as D}from"../../../symbols/support/utils.js";import{getClusterSizeVariable as M}from"./clusterUtils.js";import{getColorFromPointCloudStops as P,getRampStopsForPointCloud as U,getStrectchRampStops as A,getRampStops as B}from"./colorRampUtils.js";import{getHeatmapRampStops as k}from"./heatmapRampUtils.js";import{getRotationAngleForFocus as N,getRelationshipRampElement as q}from"./relationshipRampUtils.js";import{getRampStops as W,REAL_WORLD_MAX_SIZE as $,REAL_WORLD_MIN_SIZE as G}from"./sizeRampUtils.js";import{SPECIAL_CHARS_LESS_THAN as J,SPECIAL_CHARS_GREATER_THAN as Q,RGB_IMG_SOURCE as H}from"./utils.js";import{formatNumberLabel as X}from"../../smartMapping/support/utils.js";import K from"../../../symbols/SimpleMarkerSymbol.js";import Y from"../../../symbols/SimpleFillSymbol.js";const Z=o.getLogger("esri.widgets.Legend.support.ActiveLayerInfo"),ee="https://utility.arcgis.com/sharing/tools/legend",te="esri.layers.ImageryLayer",le="esri.layers.ImageryTileLayer",se="esri.layers.WCSLayer",re=/^\s*(return\s+)?\$view\.scale\s*(;)?\s*$/i,ie=new a({esriGeometryPoint:"point",esriGeometryMultipoint:"multipoint",esriGeometryPolyline:"polyline",esriGeometryPolygon:"polygon",esriGeometryMultiPatch:"multipatch"}),ne={u1:[0,1],u2:[0,3],u4:[0,15],u8:[0,255],s8:[-128,127],u16:[0,65535],s16:[-32768,32767],u32:[0,4294967295],s32:[-2147483648,2147483647],f32:[-34e38,34e38],f64:[-Number.MAX_VALUE,Number.MAX_VALUE]},ae=new K({size:6,outline:{color:[128,128,128,.5],width:.5}}),oe=new Y({style:"solid"});function ue(e){return"vector-field"===e.type}function ce(e){return"raster-colormap"===e.type}function de(e){return"raster-stretch"===e.type}function ye(e){return"raster-shaded-relief"===e.type}function he(e){return"esri.renderers.SimpleRenderer"===e.declaredClass}function me(e){return"esri.renderers.ClassBreaksRenderer"===e.declaredClass}function pe(e){return"esri.renderers.UniqueValueRenderer"===e.declaredClass}function fe(e){return"esri.renderers.HeatmapRenderer"===e.declaredClass}function ge(e){return Se(e)||_e(e)||ve(e)||be(e)}function be(e){return"esri.renderers.PointCloudRGBRenderer"===e.declaredClass}function Se(e){return"esri.renderers.PointCloudClassBreaksRenderer"===e.declaredClass}function _e(e){return"esri.renderers.PointCloudStretchRenderer"===e.declaredClass}function ve(e){return"esri.renderers.PointCloudUniqueValueRenderer"===e.declaredClass}function we(e){return"esri.renderers.DotDensityRenderer"===e.declaredClass}function Le(e,t){return he(e)||me(e)||pe(e)||fe(e)||we(e)?"2d"===t.type||R(e):de(e)||ce(e)||ye(e)||Se(e)||_e(e)||ve(e)||ue(e)}function Ee(e){return"esri.layers.BuildingSceneLayer"===e.declaredClass}function Ie(e){return"esri.layers.VoxelLayer"===e.declaredClass}function Ce(e){return"esri.layers.WMSLayer"===e.declaredClass}function Re(e){return"esri.layers.WMTSLayer"===e.declaredClass}function Ve(e){return"esri.layers.MapImageLayer"===e.declaredClass}function Fe(e){return"esri.layers.TileLayer"===e.declaredClass}function Te(e){return"esri.layers.FeatureLayer"===e.declaredClass}function ze(e){return e.declaredClass===te}function xe(e){return e.declaredClass===le}function je(e){return e.declaredClass===se}function Oe(e){return"stretch-ramp"===e.type}function De(e){const t="authoringInfo"in e&&(null==e?void 0:e.authoringInfo);return"univariate-color-size"===(null==t?void 0:t.type)}function Me(e){const t="authoringInfo"in e&&(null==e?void 0:e.authoringInfo);return"univariate-color-size"===(null==t?void 0:t.type)&&"above-and-below"===(null==t?void 0:t.univariateTheme)}const Pe=new K({style:"path",path:"M10,5 L5,0 0,5 M5,0 L5,15",size:15,outline:{width:1,color:[85,85,85,1]}});let Ue={},Ae=class extends r{constructor(e){super(e),this._handles=new n,this._hasColorRamp=!1,this._hasOpacityRamp=!1,this._hasSizeRamp=!1,this._webStyleSymbolCache=new Map,this._dotDensityUrlCache=new Map,this._scaleDrivenSizeVariable=null,this._hasClusterSizeVariable=!1,this.children=new i,this.layerView=null,this.layer=null,this.legendElements=[],this.parent=null,this.hideLayersNotInCurrentView=!1,this.keepCacheOnDestroy=!1,this.respectLayerVisibility=!0,this.sublayerIds=[],this.title=null,this.view=null}initialize(){const e=()=>this.notifyChange("ready");this._handles.add([p(this,"children","change",(t=>{const{added:l,removed:s}=t,r=this._handles;l.forEach((t=>{const l=`activeLayerInfo-ready-watcher-${t.layer.uid}`;r.add(f(t,"ready",e),l)})),s.forEach((e=>r.remove(e.layer.uid))),e()}))]),this.keepCacheOnDestroy||(Ue={})}destroy(){this._handles.destroy(),this._handles=null,this._webStyleSymbolCache=null,this._dotDensityUrlCache=null,this._scaleDrivenSizeVariable=null,this.keepCacheOnDestroy||(Ue=null)}get effectList(){const e=this.layer;let t=null;return"effect"in e&&e.effect&&(t=new w,t.effect=e.effect,t.end(),t.scale=this.scale),t}get opacity(){var e;const t=this.layer.opacity,l=null==(e=this.parent)?void 0:e.opacity,s=this.layer.parent,r=s&&"uid"in s?this._getParentLayerOpacity(s):null;return null!=l?l*t:null!=r?r*t:t}get ready(){return null===this.layer||(this.children.length>0?this._isGroupActive():this.legendElements.length>0)}get scale(){return this.view&&this.view.scale}get isScaleDriven(){const e=this.layer;if(null===e)return!1;if("effect"in e&&e.effect&&Array.isArray(e.effect))return!0;if("featureReduction"in e&&e.featureReduction&&"cluster"===e.featureReduction.type)return!0;if("renderer"in e&&e.renderer){if("dot-density"===e.renderer.type)return!0;const t=e.get("renderer.valueExpression");if(re.test(t))return!0;const l=e.get("renderer.visualVariables");if(l)return l.some((e=>this._isScaleDrivenSizeVariable(e)))}return this._isLayerScaleDriven(this.layer)}get version(){return this._get("version")+1}async buildLegendElementsForFeatureCollections(e){if(!(!this.hideLayersNotInCurrentView||await this._isLayerInCurrentView()))return this.legendElements=[],void this.notifyChange("ready");const t=Array.from(e,(e=>{if(Te(e))return this._getRendererLegendElements(e.renderer,{title:e.title});if(e.featureSet&&e.featureSet.features.length){const t=e.layerDefinition,l=t&&t.drawingInfo,s=l&&C(l.renderer),r=ie.read(t.geometryType);return s?this._getRendererLegendElements(s,{title:e.name,geometryType:r}):(Z.warn("drawingInfo not available!"),null)}return null}));try{const e=[];await d(t).then((t=>{t.forEach((({value:t})=>t&&e.push(...t)))})),this.legendElements=e,this.notifyChange("ready")}catch(l){Z.warn("error while building legend for layer!",l)}}async buildLegendElementsForRenderer(e){try{const t=!this.hideLayersNotInCurrentView||await this._isLayerInCurrentView();this.legendElements=t?await this._getRendererLegendElements(e):[],this.notifyChange("ready")}catch(t){Z.warn("error while building legend for layer!",t)}}async buildLegendElementsForTools(){const e=this.layer;if(Ie(e))this._constructLegendElementsForVoxellayer();else if(Re(e))this._constructLegendElementsForWMTSlayer();else if(Ce(e))await this._constructLegendElementsForWMSSublayers();else if(Ee(e))await this._constructLegendElementsForBuildingSceneLayer();else if(Ve(e)||Fe(e)||Ee(e))await this._constructLegendElementsForSublayers();else{this._handles.remove("imageryLayers-watcher");let s="default";if(ze(e)){var t,l;const r=e;s=((null==r||null==(t=r.renderingRule)?void 0:t.functionName)||"default")+"_"+(null!=(l=e.bandIds)&&l.length?e.bandIds.join(""):"###")}await this._getLegendLayers(`${e.uid}-${s}`).then((async t=>{this.legendElements=[],this.notifyChange("ready");const l=t.map((async t=>{if(ze(e)||xe(e)){const t=e.watch(["renderingRule","bandIds"],(()=>y((async()=>{Ue.default=null,e.renderer?await this.buildLegendElementsForRenderer(e.renderer):await this.buildLegendElementsForTools()}))()));this._handles.add(t,"imageryLayers-watcher")}const l=this._generateSymbolTableElementForLegendLayer(t);l&&l.infos.length&&(ze(e)&&(l.title=e.title),this.legendElements.push(l)),this.notifyChange("ready")}));await d(l)})).catch((e=>{Z.warn("Request to server for legend has failed!",e)}))}}async _isLayerInCurrentView(){const e=this.layer,t=this.layerView,l=t&&"createQuery"in t&&"queryFeatureCount"in t;if(!l&&!(t&&"createQuery"in e&&"queryFeatureCount"in e))return!0;await g(t,"updating");const s=l?"createQuery"in t&&t.createQuery():"createQuery"in e&&e.createQuery();s.geometry=this.view.extent;return 0!==(l?"queryFeatureCount"in t&&await t.queryFeatureCount(s):"queryFeatureCount"in e&&await e.queryFeatureCount(s))}_getParentLayerOpacity(e){let t=1;const l=e.parent;return l&&"uid"in l&&(t=this._getParentLayerOpacity(l)),e.opacity*t}_isGroupActive(){const e=this.children;return!!e.length&&e.some((e=>e.ready))}_isScaleDrivenSizeVariable(e){if(e&&"size"!==e.type)return!1;const t=e,l=t.minSize,s=t.maxSize;return"object"==typeof l&&l?this._isScaleDrivenSizeVariable(l):"object"==typeof s&&s?this._isScaleDrivenSizeVariable(s):!!t.expression||re.test(t.valueExpression)}_isLayerScaleDriven(e){if("minScale"in e&&e.minScale>0||"maxScale"in e&&e.maxScale>0)return!0;if("sublayers"in e&&e.sublayers)return e.sublayers.some((e=>this._isLayerScaleDriven(e)));const t=e.parent;if(!1===e.loaded&&t&&Ve(t)&&"source"in e&&e.source&&"map-layer"===e.source.type)for(const l of t.sourceJSON.layers)if(l.id===e.source.mapLayerId&&(l.minScale>0||l.maxScale>0))return!0;return!1}async _constructLegendElementsForVoxellayer(){this.legendElements=[],this._handles.remove("voxel-style-watcher");const e=this.layer;this._handles.add(b(e,"style",(()=>this._constructLegendElementsForVoxellayer())),"voxel-style-watcher");const t=u(e.getVariableStyle(null)),l=[];var s;if(t)if(null!=(s=t.uniqueValues)&&s.length){const e=[];t.uniqueValues.forEach((t=>{t.enabled&&e.push({label:t.label||`${t.value}`,value:t.value,symbol:new Y({color:t.color,outline:null})})})),e.length&&l.push({type:"symbol-table",title:t.label,infos:e})}else if(t.transferFunction){const{colorStops:e,stretchRange:s}=t.transferFunction,r=e.toArray().reverse(),i=s.map(((e,t)=>`${0===t?J:Q} ${X(e)}`)).reverse(),n=r.map((e=>({color:e.color,value:null,label:null})));n[0].label=i[0],n[n.length-1].label=i[1],l.push({type:"color-ramp",title:t.label,infos:n,preview:x(r.map((e=>e.color)))})}const r=e.opacity,i=l.reduce(((e,t)=>e.concat(this._getAllInfos(t))),[]).filter((e=>!(null==e||!e.symbol))).map((e=>this._getSymbolPreview(e,r)));await d(i),this.legendElements=l,this.notifyChange("ready")}_constructLegendElementsForWMTSlayer(){this.legendElements=[],this._handles.remove("wmts-activeLayer-watcher");const e=this.layer.activeLayer;if(this._handles.add(b(this.layer,"activeLayer",(()=>this._constructLegendElementsForWMTSlayer())),"wmts-activeLayer-watcher"),e.styleId&&e.styles){let t=null;e.styles.some((l=>e.styleId===l.id&&(t=l.legendUrl,!0))),t&&(this.legendElements=[{type:"symbol-table",title:e.title,infos:[{src:t,opacity:this.opacity}]}])}this.notifyChange("ready")}async _constructLegendElementsForWMSSublayers(){this.legendElements=[],this._handles.remove("wms-sublayers-watcher");const e=this.layer;let t=null;(e.customParameters||e.customLayerParameters)&&(t={...e.customParameters,...e.customLayerParameters}),this._handles.add(b(this.layer,"sublayers",(()=>this._constructLegendElementsForWMSSublayers())),"wms-sublayers-watcher"),this.legendElements=await this._generateLegendElementsForWMSSublayers(e.sublayers,t),this.notifyChange("ready")}async _generateLegendElementsForWMSSublayers(e,t){const l=[];this._handles.add(e.on("change",(()=>this._constructLegendElementsForWMSSublayers())),"wms-sublayers-watcher");const s=e.toArray();for(const r of s){const e=r.watch(["title","visible","legendEnabled"],(()=>this._constructLegendElementsForWMSSublayers()));if(this._handles.add(e,"wms-sublayers-watcher"),!this.respectLayerVisibility||r.visible&&r.legendEnabled){const e=await this._generateSymbolTableElementForWMSSublayer(r,t);e&&e.infos.length&&l.unshift(e)}}return l}async _generateSymbolTableElementForWMSSublayer(e,t){if(!e.legendUrl&&e.sublayers){const l=(await this._generateLegendElementsForWMSSublayers(e.sublayers,t)).filter((e=>e));return{type:"symbol-table",title:e.title,infos:l}}return this._generateSymbolTableElementForLegendUrl(e,t)}async _generateSymbolTableElementForLegendUrl(e,t){var l;let r=e.legendUrl;if(!r)return;const i={type:"symbol-table",title:e.title||e.name||e.id&&e.id+"",infos:[]};t&&(r=m(r,t));let n=null;const a=null==(l=e.layer)?void 0:l.opacity;try{n=(await s(r,{responseType:"image"})).data,n&&(n.style.opacity=a)}catch{}return i.infos.push({src:r,preview:n,opacity:a}),i}_getLegendLayers(e,t){const l=Ue&&Ue[e];return l?Promise.resolve(l):this._legendRequest(t).then((t=>{const l=t.layers;return Ue[e]=l,l}))}_legendRequest(e){const t=this.layer;let l={f:"json",dynamicLayers:e};if(ze(t)){const e=t.exportImageServiceParameters.renderingRule;if(e&&(l.renderingRule=JSON.stringify(e.rasterFunctionDefinition||e.toJSON())),t.bandIds&&(l.bandIds=t.bandIds.join()),t.raster||t.viewId||t.customParameters){const{raster:e,viewId:s,customParameters:r}=t;l={raster:e,viewId:s,...l,...r}}}let r=t.url.replace(/(\/)+$/,"");if("version"in t&&t.version>=10.01){const e=r.indexOf("?");e>-1?r=r.substring(0,e)+"/legend"+r.substring(e):r+="/legend"}else{const e=r.toLowerCase().indexOf("/rest/"),t=r.substring(0,e)+r.substring(e+5,r.length);r=ee+"?soapUrl="+encodeURI(t)+"&returnbytes=true"}return s(r,{query:l}).then((e=>e.data))}async _constructLegendElementsForBuildingSceneLayer(){this.legendElements=[],this._handles.remove("sublayers-watcher");const e=this.layer;this._handles.add(b(e,"sublayers",(()=>this._constructLegendElementsForBuildingSceneLayer())),"sublayers-watcher");try{this.legendElements=await this._generateLegendElementsForBuildingSublayers(e.sublayers,this.opacity),this.notifyChange("ready")}catch(t){Z.warn("Request to server for legend has failed!",t)}}async _generateLegendElementsForBuildingSublayers(e,t){let l=[];this._handles.add(e.on("change",(()=>this._constructLegendElementsForBuildingSceneLayer())),"sublayers-watcher");const s=e.toArray();for(const r of s){const e=r.watch(["renderer","opacity","title","visible"],(()=>this._constructLegendElementsForBuildingSceneLayer()));if(this._handles.add(e,"sublayers-watcher"),!this.respectLayerVisibility||r.visible){const e=r&&null!=r.opacity?r.opacity:null,s=null!=e?e*t:t;if("building-group"===r.type){const e={type:"symbol-table",title:r.title,infos:[]},t=await this._generateLegendElementsForBuildingSublayers(r.sublayers,s);e.infos.push(...t),l=[e,...l]}else if(r.renderer){l=[...await this._getRendererLegendElements(r.renderer,{title:r.title,opacity:s,sublayer:r}),...l]}}}return l.filter((e=>!!e&&(!("infos"in e)||e.infos.length>0)))}async _constructLegendElementsForSublayers(){this.legendElements=[],this._handles.remove("sublayers-watcher");const e=this.layer;this._handles.add(b(e,"sublayers",(()=>this._constructLegendElementsForSublayers)),"sublayers-watcher");try{this.legendElements=await this._generateLegendElementsForSublayers(e.sublayers,this.opacity),this.notifyChange("ready")}catch(t){Z.warn("Request to server for legend has failed!",t)}}async _generateLegendElementsForSublayers(e,t,l){const s=this.layer;let r=[];this._handles.add(e.on("change",(()=>this._constructLegendElementsForSublayers())),"sublayers-watcher");let i=e.toArray();!l&&this.sublayerIds&&this.sublayerIds.length&&(i=this.sublayerIds.map((e=>s.findSublayerById(e))).filter(Boolean));for(const n of i){const e=n.watch("renderer, opacity, title, visible, legendEnabled",(()=>this._constructLegendElementsForSublayers()));if(this._handles.add(e,"sublayers-watcher"),!this.respectLayerVisibility||n.visible&&n.legendEnabled&&this._isSublayerInScale(n)){const e=n&&null!=n.opacity?n.opacity:null,s=null!=e?e*t:t;if(n.renderer&&!n.sublayers&&n.originIdOf("renderer")>v.SERVICE){await n.load();r=[...await this._getRendererLegendElements(n.renderer,{title:n.title,opacity:s,sublayer:n}),...r]}else{const e=await this._generateSymbolTableElementForSublayer(n,s,l);e&&r.unshift(e)}}}return r.filter((e=>!!e&&(!("infos"in e)||e.infos.length>0)))}async _generateSymbolTableElementForSublayer(e,t,l){if(!l){l=new Map;const t=this.layer,s=e.source;let r=null;if(!(!s||"map-layer"===s.type&&s.mapLayerId===e.id&&(!s.gdbVersion||s.gdbVersion===("gdbVersion"in t&&t.gdbVersion)))||e.originIdOf("renderer")>v.SERVICE||e.originIdOf("labelingInfo")>v.SERVICE||e.originIdOf("labelsVisible")>v.SERVICE){const e=new E({layer:this.layer});r=e.hasDynamicLayers?e.dynamicLayers:null,e.destroy()}const i=r||`${t.uid}-default`;(await this._getLegendLayers(i,r)).forEach((e=>l.set(e.layerId,e)))}const s=l.get(e.id);if(!s&&e.sublayers){const s=await this._generateLegendElementsForSublayers(e.sublayers,t,l);return{type:"symbol-table",title:e.title,infos:s}}return this._generateSymbolTableElementForLegendLayer(s,e,t)}_generateSymbolTableElementForLegendLayer(e,t,l){var s;if(!e||!e.legend||this.respectLayerVisibility&&!this._isLegendLayerInScale(e,t))return null;const r=null==t?void 0:t.renderer;let i=(null==t?void 0:t.title)||e.layerName;if(r&&(!t||(null==t?void 0:t.originIdOf("renderer"))>v.SERVICE)){const e=(null==t?void 0:t.title)||this._getRendererTitle(r,t);e&&(i&&"string"!=typeof e&&"title"in e&&(e.title=i),i=e)}const n={type:"symbol-table",title:i,legendType:e.legendType?e.legendType:null,infos:[]},a=t?this._sanitizeLegendForSublayer(e.legend.slice(),t):e.legend;return(null==(s=e.legendGroups)?void 0:s.length)>0?e.legendGroups.forEach((t=>{var s;const r={type:"symbol-table",title:t.heading,legendType:e.legendType?e.legendType:null,infos:this._generateSymbolTableElementInfosForLegendLayer(a.filter((e=>e.groupId===t.id)),e.layerId,l)};(null==(s=r.infos)?void 0:s.length)>0&&n.infos.push(r)})):n.infos=this._generateSymbolTableElementInfosForLegendLayer(a,e.layerId,l),n.infos.length>0?n:null}_generateSymbolTableElementInfosForLegendLayer(e,t,s){return e.map((e=>{let r=e.url;if(e.imageData&&e.imageData.length>0)r=`data:image/png;base64,${e.imageData}`;else{if(0===r.indexOf("http"))return null;r=l(`${this.layer.url}/${t}/images/${r}`)}return{label:e.label,src:r,opacity:null==s?this.opacity:s,width:e.width,height:e.height}})).filter((e=>!!e))}_isSublayerInScale(e){const t=e.minScale||0,l=e.maxScale||0;return!(t>0&&t<this.scale||l>this.scale)}_isLegendLayerInScale(e,t){const l=t||this.layer;let s=null,r=null,i=!0;return!l.minScale&&0!==l.minScale||!l.maxScale&&0!==l.maxScale?(0===e.minScale&&l.tileInfo&&(s=l.tileInfo.lods[0].scale),0===e.maxScale&&l.tileInfo&&(r=l.tileInfo.lods[l.tileInfo.lods.length-1].scale)):(s=Math.min(l.minScale,e.minScale)||l.minScale||e.minScale,r=Math.max(l.maxScale,e.maxScale)),(s>0&&s<this.scale||r>this.scale)&&(i=!1),i}_sanitizeLegendForSublayer(e,t){if("version"in this.layer&&this.layer.version<10.1||0===e.length)return e;const l=t.renderer,s=e.some((e=>e.values));let r=null,i=null;return s&&e.some(((e,t)=>(e.values||(r=t,i=e,i.label||(i.label="others")),null!=i))),l?"unique-value"===l.type?i&&(e.splice(r,1),e.push(i)):"class-breaks"===l.type&&(i&&e.splice(r,1),e.reverse(),i&&e.push(i)):i&&(e.splice(r,1),e.push(i)),e}async _getRendererLegendElements(e,t={}){return Le(e,this.view)?ge(e)?this._constructPointCloudRendererLegendElements(e,t):we(e)?this._constructDotDensityRendererLegendElements(e):this._constructRendererLegendElements(e,t):(Z.warn(`Renderer of type '${e.type}' not supported!`),[])}_getPointCloudRendererTitle(e){return e.legendOptions&&e.legendOptions.title||e.field}_constructPointCloudRendererLegendElements(e,t={}){const l=t.title,s=[];let r=null,i=null;if(Se(e))r={type:"symbol-table",title:l||this._getPointCloudRendererTitle(e),infos:[]},e.colorClassBreakInfos.forEach((e=>{r.infos.unshift({label:e.label||e.minValue+" - "+e.maxValue,value:[e.minValue,e.maxValue],symbol:this._getAppliedCloneSymbol(ae,e.color)})}));else if(_e(e)){const t=e.stops;let s=null;if(t.length&&(1===t.length&&(s=t[0].color),!s)){const e=t[0].value,l=t[t.length-1].value;if(null!=e&&null!=l){s=P(e+(l-e)/2,t)}}r={type:"symbol-table",title:null,infos:[{label:null,value:null,symbol:this._getAppliedCloneSymbol(ae,s||ae.color)}]};const n=U(e.stops);i={type:"color-ramp",title:l||this._getPointCloudRendererTitle(e),infos:n,preview:x(n.map((e=>e.color)))}}else ve(e)&&(r={type:"symbol-table",title:l||this._getPointCloudRendererTitle(e),infos:[]},e.colorUniqueValueInfos.forEach((e=>{r.infos.push({label:e.label||e.values.join(", "),value:e.values.join(", "),symbol:this._getAppliedCloneSymbol(ae,e.color)})})));r&&r.infos.length&&s.push(r),i&&i.infos.length&&s.push(i);const n=s.reduce(((e,t)=>e.concat(t.infos)),[]).filter((e=>!!e.symbol)).map((t=>this._getSymbolPreview(t,this.opacity,{symbolConfig:{applyColorModulation:!!e.colorModulation}})));return d(n).then((()=>s))}_getElementInfoForDotDensity(e,t){const{backgroundColor:l,outline:s,dotSize:r}=e,i=this.effectList,n=null==i?void 0:i.effects.map((e=>e.toJSON())),a=L(n),o=r+"-"+t+"-"+l+"-"+(s&&JSON.stringify(s.toJSON()))+"-"+a,u=this._dotDensityUrlCache,c=u.has(o)?u.get(o):j(e,t);u.set(o,c);const d={shape:{type:"image",x:0,y:0,width:c.width,height:c.height,src:c.src},fill:null,stroke:null,offset:[0,0]},y=z([[d]],[c.width,c.height],{effectView:this.effectList});return{opacity:1,src:c.src,preview:y,width:c.width,height:c.height}}_constructDotDensityRendererLegendElements(e){const t=e.calculateDotValue(this.view.scale),l=e.legendOptions&&e.legendOptions.unit,s={type:"symbol-table",title:{value:t&&Math.round(t),unit:l||""},infos:[]};return e.attributes.forEach((t=>{const l=this._getElementInfoForDotDensity(e,t.color);l.label=t.label||t.valueExpressionTitle||t.field,s.infos.push(l)})),Promise.resolve([s])}async _constructRendererLegendElements(e,t={}){const{title:l,sublayer:s}=t,r=s||this.layer;let i=await this._loadRenderer(e);this._hasColorRamp=!1,this._hasOpacityRamp=!1,this._hasSizeRamp=!1,this._scaleDrivenSizeVariable=null;const n=await this._getVisualVariableLegendElements(i,r)||[],a={type:"symbol-table",title:l||this._getRendererTitle(i,r),infos:[]};let o=null,c=!1;const y=new Set;if(De(i)){let e=l;const t=Me(i)?"univariate-above-and-below-ramp":"univariate-color-size-ramp",s=n.findIndex((e=>"color-ramp"===e.type)),r=-1!==s?n.splice(s,1)[0]:null,a=n.findIndex((e=>"size-ramp"===e.type)),o=-1!==a?n.splice(a,1)[0]:null,u=[];r&&(e=r.title,u.push(r)),o&&(e=o.title,u.push(o)),u.length>0&&n.push({type:t,title:e,infos:u})}else if(fe(i)){const e=k(i);n.push({type:"heatmap-ramp",title:l,infos:e,preview:x(e.map((e=>e.color)),{effectList:this.effectList})})}else if(pe(i)){const e=i&&i.authoringInfo;if(e&&"relationship"===e.type){const{focus:t,numClasses:l,field1:s,field2:o}=e;if(l&&s&&o){const e=[s,o];let u=N(t)||0;for(const t of e){const{field:e,normalizationField:l,label:s}=t,i=s||{field:this._getFieldAlias(e,r),normField:l&&this._getFieldAlias(l,r)},n=Pe.clone();n.angle=u,a.infos.push({label:i,symbol:n}),y.add(n),u+=90}const c=q({focus:t,numClasses:l,infos:i.uniqueValueInfos});n.unshift(c)}}else{const e=i.field;i.uniqueValueInfos.forEach((t=>{t.symbol&&a.infos.push({label:t.label||this._getDomainName(e,t.value,r)||t.value,value:t.value,symbol:t.symbol})}))}i.defaultSymbol&&(a.infos.push({label:i.defaultLabel||"others",symbol:i.defaultSymbol}),c=!0)}else if(me(i)){o=this._isUnclassedRenderer(i);(!o||!this._hasSizeRamp)&&(i.classBreakInfos.forEach((e=>{e.symbol&&a.infos.unshift({label:e.label||(o?null:e.minValue+" - "+e.maxValue),value:[e.minValue,e.maxValue],symbol:e.symbol})})),o&&(a.title=null),this._updateInfosforClassedSizeRenderer(i,a.infos)),i.defaultSymbol&&!o&&(a.infos.push({label:i.defaultLabel||"others",symbol:i.defaultSymbol}),c=!0)}else if(de(i))if(xe(this.layer)||je(this.layer)){const e=this._constructTileImageryStretchRendererElements(i);Oe(e)?n.push(e):a.infos=e}else{const e=this.layer;let t,l;i.statistics&&i.statistics.length&&(t=null!=i.statistics[0].min?i.statistics[0].min:i.statistics[0][0],l=null!=i.statistics[0].max?i.statistics[0].max:i.statistics[0][1]);let s=[];const r=u(e.renderingRule?await e.generateRasterInfo(e.renderingRule):e.serviceRasterInfo),o=r.keyProperties.BandProperties,c=ne[e.rasterInfo.pixelType.toLowerCase()];1===r.bandCount||e.bandIds&&1===e.bandIds.length?(t=null!=t?t:r.statistics?r.statistics[e.bandIds[0]].min:c[0],l=null!=l?l:r.statistics?r.statistics[e.bandIds[0]].max:c[1],t||l?n.push(this._getStretchLegendElements(i,{min:t,max:l})):this._getServerSideLegend()):r.bandCount>=3?o&&o.length>=r.bandCount?e.bandIds&&3===e.bandIds.length?(s=e.bandIds.map((e=>o[e].BandName)),a.infos=this._createSymbolTableElementMultiBand(s)):"lerc"===e.format?(s=[0,1,2].map((e=>o[e].BandName)),a.infos=this._createSymbolTableElementMultiBand(s)):this._getServerSideLegend():"lerc"===e.format?(s=["band1","band2","band3"],a.infos=this._createSymbolTableElementMultiBand(s)):this._getServerSideLegend():this._getServerSideLegend()}else if(ce(i))i.colormapInfos.forEach((e=>{a.infos.push({label:e.label,value:e.value,symbol:this._getAppliedCloneSymbol(oe,e.color)})}));else if(he(i)){let e=i.symbol;switch(t.geometryType){case"point":e="pointSymbol"in r&&r.pointSymbol;break;case"polyline":e="lineSymbol"in r&&r.lineSymbol;break;case"polygon":e="polygonSymbol"in r&&r.polygonSymbol}i.symbol&&!this._hasSizeRamp&&a.infos.push({label:i.label,symbol:e})}else if(ue(i)){i.outputUnit&&(this.title="("+i.toJSON().outputUnit+")"),a.title=i.attributeField;const e=i.getClassBreakInfos();null!=e&&e.length?e.forEach((e=>{a.infos.push({label:e.minValue+" - "+e.maxValue,symbol:e.symbol})})):a.infos.push({label:i.attributeField,symbol:i.getDefaultSymbol()})}else ye(i)&&n.push(this._getStretchLegendElements(i,{min:0,max:255}));const h=i.defaultSymbol;!h||c||he(i)||o&&!this._hasColorRamp&&!this._hasSizeRamp&&!this._hasOpacityRamp||n.push({type:"symbol-table",infos:[{label:i.defaultLabel||"others",symbol:h}]}),a.infos.length&&n.unshift(a);const m=null==t.opacity?this.opacity:t.opacity,p=this._isTallSymbol("visualVariables"in i&&i.visualVariables),f=ze(this.layer)||xe(this.layer),g=n.reduce(((e,t)=>e.concat(this._getAllInfos(t))),[]).filter((e=>!(null==e||!e.symbol))).map((e=>this._getSymbolPreview(e,m,{isDefault:e.symbol===h,applyScaleDrivenSize:!y.has(e.symbol),symbolConfig:{isTall:p,isSquareFill:f},effectList:y.has(e.symbol)?null:this.effectList})));return i=null,await d(g),n}_getServerSideLegend(){setTimeout((()=>this.buildLegendElementsForTools()),0)}_getAllInfos(e){const t=null==e?void 0:e.infos;return t?t.reduce(((e,t)=>e.concat(this._getAllInfos(t))),[]):[e]}_constructTileImageryStretchRendererElements(e){var t,l;const s=this.layer,r=s.rasterInfo,i=r.bandCount||e.statistics.length;let n,a,o=[];const u=r.keyProperties&&r.keyProperties.BandProperties,c=null!=e&&null!=(t=e.statistics)&&t.length?e.statistics:null==r?void 0:r.statistics;if(c)n=void 0!==c[0].min?c[0].min:c[0][0],a=c[0].max||c[0][1];else{const e=ne[s.rasterInfo.pixelType.toLowerCase()];n=e[0],a=e[1]}if(s.hasStandardTime()&&(n=s.getStandardTimeValue(n),a=s.getStandardTimeValue(a)),1===r.bandCount||1===(null==(l=s.bandIds)?void 0:l.length))return this._getStretchLegendElements(e,{min:n,max:a});function d(e){var t;const l=(null!=s&&null!=(t=s.bandIds)&&t.length?s.bandIds:Array.from(Array(Math.min(r.bandCount,3)).keys())).map((t=>e&&e[t]&&e[t].BandName||"band"+(t+1)));return l.length<3?l.push(l[1]):l.length>3&&l.splice(3),l}return o=u&&u.length>=i?d(u):d(),this._createSymbolTableElementMultiBand(o)}_getStretchLegendElements(e,t){const l=e.colorRamp,s=A(l,t);return{type:"stretch-ramp",title:"",infos:s,preview:x(s.map((e=>e.color)))}}_createSymbolTableElementMultiBand(e){const t=[],l=["red","green","blue"];return e.forEach(((e,s)=>{t.push({label:{colorName:l[s],bandName:e},src:H[s],opacity:1})})),t}_updateInfosforClassedSizeRenderer(e,t){const l=e.authoringInfo&&"class-breaks-size"===e.authoringInfo.type,s=e.classBreakInfos.some((e=>D(e.symbol)));if(l&&s){const l=$,s=G,r=e.classBreakInfos.length,i=(l-s)/(r>1?r-1:r);t.forEach(((e,t)=>{e.size=l-i*t}))}}_isTallSymbol(e){let t=!1,l=!1;if(e)for(let s=0;s<e.length&&(!t||!l);s++){const r=e[s];"size"===r.type&&("height"===r.axis&&(t=!0),"width-and-depth"===r.axis&&(l=!0))}return t&&l}async _getSymbolPreview(e,t,l){let s=null!=l&&l.isDefault||null!=e.size||!this._hasSizeRamp?e.size:h(T.size);if(this._scaleDrivenSizeVariable&&null!=l&&l.applyScaleDrivenSize){const{getSize:t}=await import("../../../renderers/visualVariables/support/visualVariableUtils.js");s=t(this._scaleDrivenSizeVariable,null,{view:this.view.type,scale:this.scale,shape:"simple-marker"===e.symbol.type?e.symbol.style:null})}return O(e.symbol,{size:s,opacity:t,scale:!1,symbolConfig:null==l?void 0:l.symbolConfig,effectView:null==l?void 0:l.effectList}).then((t=>(e.preview=t,e))).catch((()=>(e.preview=null,e)))}async _loadRenderer(e){var t,l;const s=[],r=this.layer;e=e.clone(),this._hasClusterSizeVariable=!1;const i="visualVariables"in e&&(null==(t=e.visualVariables)?void 0:t.some((e=>"size"===e.type&&"outline"!==e.target&&!re.test(e.valueExpression))));if(e&&"visualVariables"in e&&!i&&"featureReduction"in r&&"cluster"===(null==(l=r.featureReduction)?void 0:l.type)){const t=this.layerView._effectiveRenderer,l=u(M(t,this.view));if(l){const t=r.featureReduction;if("clusterMinSize"in t&&"clusterMaxSize"in t){const{clusterMinSize:e,clusterMaxSize:s}=t;l.legendOptions=new V({showLegend:e!==s})}const s=e.visualVariables||[];e.visualVariables=s.concat([l]),this._hasClusterSizeVariable=!0}}const n=await this._getMedianColor(e);if(me(e)||pe(e)){const t=(e.classBreakInfos||e.uniqueValueInfos).map((e=>this._fetchSymbol(e.symbol,n).then((t=>{e.symbol=t})).catch((()=>{e.symbol=null}))));Array.prototype.push.apply(s,t)}return s.push(this._fetchSymbol(e.symbol||e.defaultSymbol,e.defaultSymbol?null:n).then((t=>{this._applySymbolToRenderer(e,t,he(e))})).catch((()=>{this._applySymbolToRenderer(e,null,he(e))}))),d(s).then((()=>e))}_applySymbolToRenderer(e,t,l){l?e.symbol=t:e.defaultSymbol=t}async _getMedianColor(e){if(!("visualVariables"in e)||!e.visualVariables)return null;const t=e.visualVariables.find((e=>"color"===e.type));if(!t)return null;let l=null,s=null;if(t.stops){if(1===t.stops.length)return t.stops[0].color;l=t.stops[0].value,s=t.stops[t.stops.length-1].value}const r=l+(s-l)/2,{getColor:i}=await import("../../../renderers/visualVariables/support/visualVariableUtils.js");return i(t,r)}_fetchSymbol(e,t){if(!e)return Promise.reject();if("web-style"===e.type){const l=e.portal,s=l&&l.url,r=l&&l.user&&l.user.username,i=e.name+"-"+e.styleName+"-"+e.styleUrl+"-"+s+"-"+r,n=this._webStyleSymbolCache;return n.has(i)||("2d"===this.view.type?n.set(i,e.fetchCIMSymbol()):n.set(i,e.fetchSymbol())),n.get(i).then((e=>this._getAppliedCloneSymbol(e,t))).catch((()=>(Z.warn("Fetching web-style failed!"),Promise.reject())))}return Promise.resolve(this._getAppliedCloneSymbol(e,t))}_getAppliedCloneSymbol(e,l){if(!e||!l)return e;const s=e.clone(),r=l&&l.toRgba();return s.type.indexOf("3d")>-1?this._applyColorTo3dSymbol(s,r):"cim"===s.type?F(s,l):s.color&&(s.color=new t(r||s.color)),s}_applyColorTo3dSymbol(e,l){l&&e.symbolLayers.forEach((e=>{e&&(e.material||(e.material={}),e.material.color=new t(l))}))}async _getVisualVariableLegendElements(e,t){if(!("visualVariables"in e)||!e.visualVariables||"vector-field"===e.type)return null;const l=e.visualVariables,s=[],r=[],i=[];for(const c of l)"color"===c.type?s.push(c):"size"===c.type?r.push(c):"opacity"===c.type&&i.push(c);const n=[...s,...r,...i];let a,o;if(0===s.length&&me(e)&&e.classBreakInfos&&1===e.classBreakInfos.length){const t=e.classBreakInfos[0];a=t&&t.symbol}if(0===s.length&&he(e)&&(a=e.symbol),a)if(a.type.indexOf("3d")>-1){const e=a.symbolLayers.getItemAt(0);"water"===e.type?c(e.color)&&(o=e.color):c(e.material)&&c(e.material.color)&&(o=e.material.color)}else a.url||(o=a.color);const u=this.effectList;return(await Promise.all(n.map((async l=>{if(!l.legendOptions||!1!==l.legendOptions.showLegend){const s=this._getRampTitle(l,t);let r=null;const i="getField"in t&&t.getField&&t.getField(l.field),n=i&&I(i);if("color"===l.type){const e=await B(l,null,n);r={type:"color-ramp",title:s,infos:e,preview:x(e.map((e=>e.color)),{effectList:u})},this._hasColorRamp||(this._hasColorRamp=!(null==r.infos||!r.infos.length))}else if("size"===l.type&&"outline"!==l.target)re.test(l.valueExpression)?this._hasClusterSizeVariable||(this._scaleDrivenSizeVariable=l):(r={type:"size-ramp",title:this._hasClusterSizeVariable?this._getClusterTitle(l):s,infos:await W(e,l,await this._getMedianColor(e),this.scale,this.view.type,n)},this._hasSizeRamp||(this._hasSizeRamp=!(null==r.infos||!r.infos.length)));else if("opacity"===l.type){const e=await B(l,o,n);r={type:"opacity-ramp",title:s,infos:e,preview:x(e.map((e=>e.color)),{effectList:u})},this._hasOpacityRamp||(this._hasOpacityRamp=!(null==r.infos||!r.infos.length))}return r&&r.infos?r:null}})))).filter((e=>!!e))}_getDomainName(e,t,l){if(e&&"function"!=typeof e){const s="getField"in l&&l.getField&&l.getField(e),r=s&&"getFieldDomain"in l&&l.getFieldDomain?l.getFieldDomain(s.name):null;return r&&"coded-value"===r.type?r.getName(t):null}return null}_getClusterTitle(e){const t=this.layer,l=e.field;if("featureReduction"in t&&t.featureReduction&&"cluster"===t.featureReduction.type){const e=t.featureReduction,s="popupTemplate"in e&&e.popupTemplate,r=s&&s.fieldInfos;if(r)for(const t of r)if(t.fieldName===l)return"cluster_count"===l?t.label||{showCount:!0}:t.label}return{showCount:!0}}_getRampTitle(e,t){let l=e.field,s=e.normalizationField,r=!1,i=!1,n=!1,a=null;l="function"==typeof l?null:l,s="function"==typeof s?null:s;const o=e.legendOptions&&e.legendOptions.title;if(null!=o)a=o;else if(e.valueExpressionTitle)a=e.valueExpressionTitle;else{if("renderer"in t&&t.renderer&&"authoringInfo"in t.renderer&&t.renderer.authoringInfo&&t.renderer.authoringInfo.visualVariables){const e=t.renderer.authoringInfo.visualVariables;for(let t=0;t<e.length;t++){const l=e[t];if("color"===l.type){if("ratio"===l.style){r=!0;break}if("percent"===l.style){i=!0;break}if("percent-of-total"===l.style){n=!0;break}}}}a={field:l&&this._getFieldAlias(l,t),normField:s&&this._getFieldAlias(s,t),ratio:r,ratioPercent:i,ratioPercentTotal:n}}return a}_getRendererTitle(e,t){const l=e;if(l.legendOptions&&l.legendOptions.title)return l.legendOptions.title;if(l.valueExpressionTitle)return l.valueExpressionTitle;let s=l.field,r=null,i=null;me(l)&&(r=l.normalizationField,i="percent-of-total"===l.normalizationType),s="function"==typeof s?null:s,r="function"==typeof r?null:r;let n=null;return(s||r)&&(n={field:s&&this._getFieldAlias(s,t),normField:r&&this._getFieldAlias(r,t),normByPct:i}),n}_getFieldAlias(e,t){const l="popupTemplate"in t&&t.popupTemplate,s=l&&l.fieldInfos;let r=null;s&&s.some((t=>e===t.fieldName&&(r=t,!0)));let i=null;"getField"in t&&t.getField?i=t.getField(e):"fieldsIndex"in t&&t.fieldsIndex&&(i=t.fieldsIndex.get(e));const n=r||i;let a=null;return n&&(a=r&&r.label||i&&i.alias||"name"in n&&n.name||"fieldName"in n&&n.fieldName),a}_isUnclassedRenderer(e){const t=e.visualVariables;let l=!1;return me(e)&&e.classBreakInfos&&1===e.classBreakInfos.length&&t&&(l=e.field?t.some((t=>!(!t||e.field!==t.field||(e.normalizationField||t.normalizationField)&&e.normalizationField!==t.normalizationField))):!!t.length),l}};e([S()],Ae.prototype,"children",void 0),e([S({readOnly:!0})],Ae.prototype,"effectList",null),e([S()],Ae.prototype,"layerView",void 0),e([S()],Ae.prototype,"layer",void 0),e([S()],Ae.prototype,"legendElements",void 0),e([S({readOnly:!0})],Ae.prototype,"opacity",null),e([S()],Ae.prototype,"parent",void 0),e([S({readOnly:!0,dependsOn:[]})],Ae.prototype,"ready",null),e([S()],Ae.prototype,"hideLayersNotInCurrentView",void 0),e([S()],Ae.prototype,"keepCacheOnDestroy",void 0),e([S()],Ae.prototype,"respectLayerVisibility",void 0),e([S({readOnly:!0})],Ae.prototype,"scale",null),e([S()],Ae.prototype,"sublayerIds",void 0),e([S({readOnly:!0})],Ae.prototype,"isScaleDriven",null),e([S()],Ae.prototype,"title",void 0),e([S({readOnly:!0,dependsOn:["ready"],value:0})],Ae.prototype,"version",null),e([S()],Ae.prototype,"view",void 0),Ae=e([_("esri.widgets.Legend.support.ActiveLayerInfo")],Ae);const Be=Ae;export{Be as default};
|
|
5
|
+
import{_ as e}from"../../../chunks/tslib.es6.js";import t from"../../../Color.js";import{addTokenParameter as l}from"../../../kernel.js";import s from"../../../request.js";import"../../../symbols.js";import r from"../../../core/Accessor.js";import n from"../../../core/Collection.js";import i from"../../../core/Handles.js";import{JSONMap as a}from"../../../core/jsonMap.js";import o from"../../../core/Logger.js";import{unwrap as u,isSome as c}from"../../../core/maybe.js";import{eachAlways as d,debounce as y}from"../../../core/promiseUtils.js";import{px2pt as h}from"../../../core/screenUtils.js";import{addQueryParameters as m}from"../../../core/urlUtils.js";import{on as p,init as f,whenFalseOnce as g,watch as b}from"../../../core/watchUtils.js";import{property as S}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/arrayUtils.js";import"../../../core/has.js";import"../../../core/accessorSupport/ensureType.js";import{subclass as _}from"../../../core/accessorSupport/decorators/subclass.js";import{OriginId as v}from"../../../core/accessorSupport/PropertyOrigin.js";import w from"../../../layers/effects/EffectView.js";import{effectFunctionsFromJSON as L}from"../../../layers/effects/jsonUtils.js";import{ExportImageParameters as E}from"../../../layers/support/ExportImageParameters.js";import{isDateField as I}from"../../../layers/support/fieldUtils.js";import{fromJSON as C}from"../../../renderers/support/jsonUtils.js";import{isSupportedRenderer3D as R}from"../../../renderers/support/rendererConversion.js";import V from"../../../renderers/visualVariables/support/SizeVariableLegendOptions.js";import{applyCIMSymbolColor as F}from"../../../symbols/support/cimSymbolUtils.js";import{SymbolSizeDefaults as T}from"../../../symbols/support/previewUtils.js";import{renderSymbol as z}from"../../../symbols/support/renderUtils.js";import{renderColorRampPreviewHTML as x,renderDotDensityPreviewHTML as j,renderPreviewHTML as O}from"../../../symbols/support/symbolUtils.js";import{isVolumetricSymbol as D}from"../../../symbols/support/utils.js";import{getClusterSizeVariable as M}from"./clusterUtils.js";import{getColorFromPointCloudStops as P,getRampStopsForPointCloud as U,getStrectchRampStops as A,getRampStops as B}from"./colorRampUtils.js";import{getHeatmapRampStops as k}from"./heatmapRampUtils.js";import{getRotationAngleForFocus as N,getRelationshipRampElement as q}from"./relationshipRampUtils.js";import{getRampStops as W,REAL_WORLD_MAX_SIZE as $,REAL_WORLD_MIN_SIZE as G}from"./sizeRampUtils.js";import{SPECIAL_CHARS_LESS_THAN as J,SPECIAL_CHARS_GREATER_THAN as Q,RGB_IMG_SOURCE as H}from"./utils.js";import{formatNumberLabel as X}from"../../smartMapping/support/utils.js";import K from"../../../symbols/SimpleMarkerSymbol.js";import Y from"../../../symbols/SimpleFillSymbol.js";const Z=o.getLogger("esri.widgets.Legend.support.ActiveLayerInfo"),ee="https://utility.arcgis.com/sharing/tools/legend",te="esri.layers.ImageryLayer",le="esri.layers.ImageryTileLayer",se="esri.layers.WCSLayer",re=/^\s*(return\s+)?\$view\.scale\s*(;)?\s*$/i,ne=new a({esriGeometryPoint:"point",esriGeometryMultipoint:"multipoint",esriGeometryPolyline:"polyline",esriGeometryPolygon:"polygon",esriGeometryMultiPatch:"multipatch"}),ie={u1:[0,1],u2:[0,3],u4:[0,15],u8:[0,255],s8:[-128,127],u16:[0,65535],s16:[-32768,32767],u32:[0,4294967295],s32:[-2147483648,2147483647],f32:[-34e38,34e38],f64:[-Number.MAX_VALUE,Number.MAX_VALUE]},ae=new K({size:6,outline:{color:[128,128,128,.5],width:.5}}),oe=new Y({style:"solid"});function ue(e){return"flow"===e.type}function ce(e){return"vector-field"===e.type}function de(e){return"raster-colormap"===e.type}function ye(e){return"raster-stretch"===e.type}function he(e){return"raster-shaded-relief"===e.type}function me(e){return"esri.renderers.SimpleRenderer"===e.declaredClass}function pe(e){return"esri.renderers.ClassBreaksRenderer"===e.declaredClass}function fe(e){return"esri.renderers.UniqueValueRenderer"===e.declaredClass}function ge(e){return"esri.renderers.HeatmapRenderer"===e.declaredClass}function be(e){return _e(e)||ve(e)||we(e)||Se(e)}function Se(e){return"esri.renderers.PointCloudRGBRenderer"===e.declaredClass}function _e(e){return"esri.renderers.PointCloudClassBreaksRenderer"===e.declaredClass}function ve(e){return"esri.renderers.PointCloudStretchRenderer"===e.declaredClass}function we(e){return"esri.renderers.PointCloudUniqueValueRenderer"===e.declaredClass}function Le(e){return"esri.renderers.DotDensityRenderer"===e.declaredClass}function Ee(e,t){return me(e)||pe(e)||fe(e)||ge(e)||Le(e)?"2d"===t.type||R(e):ye(e)||de(e)||he(e)||_e(e)||ve(e)||we(e)||ce(e)||ue(e)}function Ie(e){return"esri.layers.BuildingSceneLayer"===e.declaredClass}function Ce(e){return"esri.layers.VoxelLayer"===e.declaredClass}function Re(e){return"esri.layers.WMSLayer"===e.declaredClass}function Ve(e){return"esri.layers.WMTSLayer"===e.declaredClass}function Fe(e){return"esri.layers.MapImageLayer"===e.declaredClass}function Te(e){return"esri.layers.TileLayer"===e.declaredClass}function ze(e){return"esri.layers.FeatureLayer"===e.declaredClass}function xe(e){return e.declaredClass===te}function je(e){return e.declaredClass===le}function Oe(e){return e.declaredClass===se}function De(e){return"stretch-ramp"===e.type}function Me(e){const t="authoringInfo"in e&&(null==e?void 0:e.authoringInfo);return"univariate-color-size"===(null==t?void 0:t.type)}function Pe(e){const t="authoringInfo"in e&&(null==e?void 0:e.authoringInfo);return"univariate-color-size"===(null==t?void 0:t.type)&&"above-and-below"===(null==t?void 0:t.univariateTheme)}const Ue=new K({style:"path",path:"M10,5 L5,0 0,5 M5,0 L5,15",size:15,outline:{width:1,color:[85,85,85,1]}});let Ae={},Be=class extends r{constructor(e){super(e),this._handles=new i,this._hasColorRamp=!1,this._hasOpacityRamp=!1,this._hasSizeRamp=!1,this._webStyleSymbolCache=new Map,this._dotDensityUrlCache=new Map,this._scaleDrivenSizeVariable=null,this._hasClusterSizeVariable=!1,this.children=new n,this.layerView=null,this.layer=null,this.legendElements=[],this.parent=null,this.hideLayersNotInCurrentView=!1,this.keepCacheOnDestroy=!1,this.respectLayerVisibility=!0,this.sublayerIds=[],this.title=null,this.view=null}initialize(){const e=()=>this.notifyChange("ready");this._handles.add([p(this,"children","change",(t=>{const{added:l,removed:s}=t,r=this._handles;l.forEach((t=>{const l=`activeLayerInfo-ready-watcher-${t.layer.uid}`;r.add(f(t,"ready",e),l)})),s.forEach((e=>r.remove(e.layer.uid))),e()}))]),this.keepCacheOnDestroy||(Ae={})}destroy(){this._handles.destroy(),this._handles=null,this._webStyleSymbolCache=null,this._dotDensityUrlCache=null,this._scaleDrivenSizeVariable=null,this.keepCacheOnDestroy||(Ae=null)}get effectList(){const e=this.layer;let t=null;return"effect"in e&&e.effect&&(t=new w,t.effect=e.effect,t.end(),t.scale=this.scale),t}get opacity(){var e;const t=this.layer.opacity,l=null==(e=this.parent)?void 0:e.opacity,s=this.layer.parent,r=s&&"uid"in s?this._getParentLayerOpacity(s):null;return null!=l?l*t:null!=r?r*t:t}get ready(){return null===this.layer||(this.children.length>0?this._isGroupActive():this.legendElements.length>0)}get scale(){return this.view&&this.view.scale}get isScaleDriven(){const e=this.layer;if(null===e)return!1;if("effect"in e&&e.effect&&Array.isArray(e.effect))return!0;if("featureReduction"in e&&e.featureReduction&&"cluster"===e.featureReduction.type)return!0;if("renderer"in e&&e.renderer){if("dot-density"===e.renderer.type)return!0;const t=e.get("renderer.valueExpression");if(re.test(t))return!0;const l=e.get("renderer.visualVariables");if(l)return l.some((e=>this._isScaleDrivenSizeVariable(e)))}return this._isLayerScaleDriven(this.layer)}get version(){return this._get("version")+1}async buildLegendElementsForFeatureCollections(e){if(!(!this.hideLayersNotInCurrentView||await this._isLayerInCurrentView()))return this.legendElements=[],void this.notifyChange("ready");const t=Array.from(e,(e=>{if(ze(e))return this._getRendererLegendElements(e.renderer,{title:e.title});if(e.featureSet&&e.featureSet.features.length){const t=e.layerDefinition,l=t&&t.drawingInfo,s=l&&C(l.renderer),r=ne.read(t.geometryType);return s?this._getRendererLegendElements(s,{title:e.name,geometryType:r}):(Z.warn("drawingInfo not available!"),null)}return null}));try{const e=[];await d(t).then((t=>{t.forEach((({value:t})=>t&&e.push(...t)))})),this.legendElements=e,this.notifyChange("ready")}catch(l){Z.warn("error while building legend for layer!",l)}}async buildLegendElementsForRenderer(e){try{const t=!this.hideLayersNotInCurrentView||await this._isLayerInCurrentView();this.legendElements=t?await this._getRendererLegendElements(e):[],this.notifyChange("ready")}catch(t){Z.warn("error while building legend for layer!",t)}}async buildLegendElementsForTools(){const e=this.layer;if(Ce(e))this._constructLegendElementsForVoxellayer();else if(Ve(e))this._constructLegendElementsForWMTSlayer();else if(Re(e))await this._constructLegendElementsForWMSSublayers();else if(Ie(e))await this._constructLegendElementsForBuildingSceneLayer();else if(Fe(e)||Te(e)||Ie(e))await this._constructLegendElementsForSublayers();else{this._handles.remove("imageryLayers-watcher");let s="default";if(xe(e)){var t,l;const r=e;s=((null==r||null==(t=r.renderingRule)?void 0:t.functionName)||"default")+"_"+(null!=(l=e.bandIds)&&l.length?e.bandIds.join(""):"###")}await this._getLegendLayers(`${e.uid}-${s}`).then((async t=>{this.legendElements=[],this.notifyChange("ready");const l=t.map((async t=>{if(xe(e)||je(e)){const t=e.watch(["renderingRule","bandIds"],(()=>y((async()=>{Ae.default=null,e.renderer?await this.buildLegendElementsForRenderer(e.renderer):await this.buildLegendElementsForTools()}))()));this._handles.add(t,"imageryLayers-watcher")}const l=this._generateSymbolTableElementForLegendLayer(t);l&&l.infos.length&&(xe(e)&&(l.title=e.title),this.legendElements.push(l)),this.notifyChange("ready")}));await d(l)})).catch((e=>{Z.warn("Request to server for legend has failed!",e)}))}}async _isLayerInCurrentView(){const e=this.layer,t=this.layerView,l=t&&"createQuery"in t&&"queryFeatureCount"in t;if(!l&&!(t&&"createQuery"in e&&"queryFeatureCount"in e))return!0;await g(t,"updating");const s=l?"createQuery"in t&&t.createQuery():"createQuery"in e&&e.createQuery();s.geometry=this.view.extent;return 0!==(l?"queryFeatureCount"in t&&await t.queryFeatureCount(s):"queryFeatureCount"in e&&await e.queryFeatureCount(s))}_getParentLayerOpacity(e){let t=1;const l=e.parent;return l&&"uid"in l&&(t=this._getParentLayerOpacity(l)),e.opacity*t}_isGroupActive(){const e=this.children;return!!e.length&&e.some((e=>e.ready))}_isScaleDrivenSizeVariable(e){if(e&&"size"!==e.type)return!1;const t=e,l=t.minSize,s=t.maxSize;return"object"==typeof l&&l?this._isScaleDrivenSizeVariable(l):"object"==typeof s&&s?this._isScaleDrivenSizeVariable(s):!!t.expression||re.test(t.valueExpression)}_isLayerScaleDriven(e){if("minScale"in e&&e.minScale>0||"maxScale"in e&&e.maxScale>0)return!0;if("sublayers"in e&&e.sublayers)return e.sublayers.some((e=>this._isLayerScaleDriven(e)));const t=e.parent;if(!1===e.loaded&&t&&Fe(t)&&"source"in e&&e.source&&"map-layer"===e.source.type)for(const l of t.sourceJSON.layers)if(l.id===e.source.mapLayerId&&(l.minScale>0||l.maxScale>0))return!0;return!1}async _constructLegendElementsForVoxellayer(){this.legendElements=[],this._handles.remove("voxel-style-watcher");const e=this.layer;this._handles.add(b(e,"style",(()=>this._constructLegendElementsForVoxellayer())),"voxel-style-watcher");const t=u(e.getVariableStyle(null)),l=[];var s;if(t)if(null!=(s=t.uniqueValues)&&s.length){const e=[];t.uniqueValues.forEach((t=>{t.enabled&&e.push({label:t.label||`${t.value}`,value:t.value,symbol:new Y({color:t.color,outline:null})})})),e.length&&l.push({type:"symbol-table",title:t.label,infos:e})}else if(t.transferFunction){const{colorStops:e,stretchRange:s}=t.transferFunction,r=e.toArray().reverse(),n=s.map(((e,t)=>`${0===t?J:Q} ${X(e)}`)).reverse(),i=r.map((e=>({color:e.color,value:null,label:null})));i[0].label=n[0],i[i.length-1].label=n[1],l.push({type:"color-ramp",title:t.label,infos:i,preview:x(r.map((e=>e.color)))})}const r=e.opacity,n=l.reduce(((e,t)=>e.concat(this._getAllInfos(t))),[]).filter((e=>!(null==e||!e.symbol))).map((e=>this._getSymbolPreview(e,r)));await d(n),this.legendElements=l,this.notifyChange("ready")}_constructLegendElementsForWMTSlayer(){this.legendElements=[],this._handles.remove("wmts-activeLayer-watcher");const e=this.layer.activeLayer;if(this._handles.add(b(this.layer,"activeLayer",(()=>this._constructLegendElementsForWMTSlayer())),"wmts-activeLayer-watcher"),e.styleId&&e.styles){let t=null;e.styles.some((l=>e.styleId===l.id&&(t=l.legendUrl,!0))),t&&(this.legendElements=[{type:"symbol-table",title:e.title,infos:[{src:t,opacity:this.opacity}]}])}this.notifyChange("ready")}async _constructLegendElementsForWMSSublayers(){this.legendElements=[],this._handles.remove("wms-sublayers-watcher");const e=this.layer;let t=null;(e.customParameters||e.customLayerParameters)&&(t={...e.customParameters,...e.customLayerParameters}),this._handles.add(b(this.layer,"sublayers",(()=>this._constructLegendElementsForWMSSublayers())),"wms-sublayers-watcher"),this.legendElements=await this._generateLegendElementsForWMSSublayers(e.sublayers,t),this.notifyChange("ready")}async _generateLegendElementsForWMSSublayers(e,t){const l=[];this._handles.add(e.on("change",(()=>this._constructLegendElementsForWMSSublayers())),"wms-sublayers-watcher");const s=e.toArray();for(const r of s){const e=r.watch(["title","visible","legendEnabled"],(()=>this._constructLegendElementsForWMSSublayers()));if(this._handles.add(e,"wms-sublayers-watcher"),!this.respectLayerVisibility||r.visible&&r.legendEnabled){const e=await this._generateSymbolTableElementForWMSSublayer(r,t);e&&e.infos.length&&l.unshift(e)}}return l}async _generateSymbolTableElementForWMSSublayer(e,t){if(!e.legendUrl&&e.sublayers){const l=(await this._generateLegendElementsForWMSSublayers(e.sublayers,t)).filter((e=>e));return{type:"symbol-table",title:e.title,infos:l}}return this._generateSymbolTableElementForLegendUrl(e,t)}async _generateSymbolTableElementForLegendUrl(e,t){var l;let r=e.legendUrl;if(!r)return;const n={type:"symbol-table",title:e.title||e.name||e.id&&e.id+"",infos:[]};t&&(r=m(r,t));let i=null;const a=null==(l=e.layer)?void 0:l.opacity;try{i=(await s(r,{responseType:"image"})).data,i&&(i.style.opacity=a)}catch{}return n.infos.push({src:r,preview:i,opacity:a}),n}_getLegendLayers(e,t){const l=Ae&&Ae[e];return l?Promise.resolve(l):this._legendRequest(t).then((t=>{const l=t.layers;return Ae[e]=l,l}))}_legendRequest(e){const t=this.layer;let l={f:"json",dynamicLayers:e};if(xe(t)){const e=t.exportImageServiceParameters.renderingRule;if(e&&(l.renderingRule=JSON.stringify(e.rasterFunctionDefinition||e.toJSON())),t.bandIds&&(l.bandIds=t.bandIds.join()),t.raster||t.viewId||t.customParameters){const{raster:e,viewId:s,customParameters:r}=t;l={raster:e,viewId:s,...l,...r}}}let r=t.url.replace(/(\/)+$/,"");if("version"in t&&t.version>=10.01){const e=r.indexOf("?");e>-1?r=r.substring(0,e)+"/legend"+r.substring(e):r+="/legend"}else{const e=r.toLowerCase().indexOf("/rest/"),t=r.substring(0,e)+r.substring(e+5,r.length);r=ee+"?soapUrl="+encodeURI(t)+"&returnbytes=true"}return s(r,{query:l}).then((e=>e.data))}async _constructLegendElementsForBuildingSceneLayer(){this.legendElements=[],this._handles.remove("sublayers-watcher");const e=this.layer;this._handles.add(b(e,"sublayers",(()=>this._constructLegendElementsForBuildingSceneLayer())),"sublayers-watcher");try{this.legendElements=await this._generateLegendElementsForBuildingSublayers(e.sublayers,this.opacity),this.notifyChange("ready")}catch(t){Z.warn("Request to server for legend has failed!",t)}}async _generateLegendElementsForBuildingSublayers(e,t){let l=[];this._handles.add(e.on("change",(()=>this._constructLegendElementsForBuildingSceneLayer())),"sublayers-watcher");const s=e.toArray();for(const r of s){const e=r.watch(["renderer","opacity","title","visible"],(()=>this._constructLegendElementsForBuildingSceneLayer()));if(this._handles.add(e,"sublayers-watcher"),!this.respectLayerVisibility||r.visible){const e=r&&null!=r.opacity?r.opacity:null,s=null!=e?e*t:t;if("building-group"===r.type){const e={type:"symbol-table",title:r.title,infos:[]},t=await this._generateLegendElementsForBuildingSublayers(r.sublayers,s);e.infos.push(...t),l=[e,...l]}else if(r.renderer){l=[...await this._getRendererLegendElements(r.renderer,{title:r.title,opacity:s,sublayer:r}),...l]}}}return l.filter((e=>!!e&&(!("infos"in e)||e.infos.length>0)))}async _constructLegendElementsForSublayers(){this.legendElements=[],this._handles.remove("sublayers-watcher");const e=this.layer;this._handles.add(b(e,"sublayers",(()=>this._constructLegendElementsForSublayers)),"sublayers-watcher");try{this.legendElements=await this._generateLegendElementsForSublayers(e.sublayers,this.opacity),this.notifyChange("ready")}catch(t){Z.warn("Request to server for legend has failed!",t)}}async _generateLegendElementsForSublayers(e,t,l){const s=this.layer;let r=[];this._handles.add(e.on("change",(()=>this._constructLegendElementsForSublayers())),"sublayers-watcher");let n=e.toArray();!l&&this.sublayerIds&&this.sublayerIds.length&&(n=this.sublayerIds.map((e=>s.findSublayerById(e))).filter(Boolean));for(const i of n){const e=i.watch("renderer, opacity, title, visible, legendEnabled",(()=>this._constructLegendElementsForSublayers()));if(this._handles.add(e,"sublayers-watcher"),!this.respectLayerVisibility||i.visible&&i.legendEnabled&&this._isSublayerInScale(i)){const e=i&&null!=i.opacity?i.opacity:null,s=null!=e?e*t:t;if(i.renderer&&!i.sublayers&&i.originIdOf("renderer")>v.SERVICE){await i.load();r=[...await this._getRendererLegendElements(i.renderer,{title:i.title,opacity:s,sublayer:i}),...r]}else{const e=await this._generateSymbolTableElementForSublayer(i,s,l);e&&r.unshift(e)}}}return r.filter((e=>!!e&&(!("infos"in e)||e.infos.length>0)))}async _generateSymbolTableElementForSublayer(e,t,l){if(!l){l=new Map;const t=this.layer,s=e.source;let r=null;if(!(!s||"map-layer"===s.type&&s.mapLayerId===e.id&&(!s.gdbVersion||s.gdbVersion===("gdbVersion"in t&&t.gdbVersion)))||e.originIdOf("renderer")>v.SERVICE||e.originIdOf("labelingInfo")>v.SERVICE||e.originIdOf("labelsVisible")>v.SERVICE){const e=new E({layer:this.layer});r=e.hasDynamicLayers?e.dynamicLayers:null,e.destroy()}const n=r||`${t.uid}-default`;(await this._getLegendLayers(n,r)).forEach((e=>l.set(e.layerId,e)))}const s=l.get(e.id);if((!s||null!=s&&s.subLayerIds&&s.defaultVisibility)&&e.sublayers){const s=await this._generateLegendElementsForSublayers(e.sublayers,t,l);return{type:"symbol-table",title:e.title,infos:s}}return this._generateSymbolTableElementForLegendLayer(s,e,t)}_generateSymbolTableElementForLegendLayer(e,t,l){var s;if(!e||!e.legend||this.respectLayerVisibility&&!this._isLegendLayerInScale(e,t))return null;const r=null==t?void 0:t.renderer;let n=(null==t?void 0:t.title)||e.layerName;if(r&&(!t||(null==t?void 0:t.originIdOf("renderer"))>v.SERVICE)){const e=(null==t?void 0:t.title)||this._getRendererTitle(r,t);e&&(n&&"string"!=typeof e&&"title"in e&&(e.title=n),n=e)}const i={type:"symbol-table",title:n,legendType:e.legendType?e.legendType:null,infos:[]},a=t?this._sanitizeLegendForSublayer(e.legend.slice(),t):e.legend;return(null==(s=e.legendGroups)?void 0:s.length)>0?e.legendGroups.forEach((t=>{var s;const r={type:"symbol-table",title:t.heading,legendType:e.legendType?e.legendType:null,infos:this._generateSymbolTableElementInfosForLegendLayer(a.filter((e=>e.groupId===t.id)),e.layerId,l)};(null==(s=r.infos)?void 0:s.length)>0&&i.infos.push(r)})):i.infos=this._generateSymbolTableElementInfosForLegendLayer(a,e.layerId,l),i.infos.length>0?i:null}_generateSymbolTableElementInfosForLegendLayer(e,t,s){return e.map((e=>{let r=e.url;if(e.imageData&&e.imageData.length>0)r=`data:image/png;base64,${e.imageData}`;else{if(0===r.indexOf("http"))return null;r=l(`${this.layer.url}/${t}/images/${r}`)}return{label:e.label,src:r,opacity:null==s?this.opacity:s,width:e.width,height:e.height}})).filter((e=>!!e))}_isSublayerInScale(e){const t=e.minScale||0,l=e.maxScale||0;return!(t>0&&t<this.scale||l>this.scale)}_isLegendLayerInScale(e,t){const l=t||this.layer;let s=null,r=null,n=!0;return!l.minScale&&0!==l.minScale||!l.maxScale&&0!==l.maxScale?(0===e.minScale&&l.tileInfo&&(s=l.tileInfo.lods[0].scale),0===e.maxScale&&l.tileInfo&&(r=l.tileInfo.lods[l.tileInfo.lods.length-1].scale)):(s=Math.min(l.minScale,e.minScale)||l.minScale||e.minScale,r=Math.max(l.maxScale,e.maxScale)),(s>0&&s<this.scale||r>this.scale)&&(n=!1),n}_sanitizeLegendForSublayer(e,t){if("version"in this.layer&&this.layer.version<10.1||0===e.length)return e;const l=t.renderer,s=e.some((e=>e.values));let r=null,n=null;return s&&e.some(((e,t)=>(e.values||(r=t,n=e,n.label||(n.label="others")),null!=n))),l?"unique-value"===l.type?n&&(e.splice(r,1),e.push(n)):"class-breaks"===l.type&&(n&&e.splice(r,1),e.reverse(),n&&e.push(n)):n&&(e.splice(r,1),e.push(n)),e}async _getRendererLegendElements(e,t={}){return Ee(e,this.view)?be(e)?this._constructPointCloudRendererLegendElements(e,t):Le(e)?this._constructDotDensityRendererLegendElements(e):this._constructRendererLegendElements(e,t):(Z.warn(`Renderer of type '${e.type}' not supported!`),[])}_getPointCloudRendererTitle(e){return e.legendOptions&&e.legendOptions.title||e.field}_constructPointCloudRendererLegendElements(e,t={}){const l=t.title,s=[];let r=null,n=null;if(_e(e))r={type:"symbol-table",title:l||this._getPointCloudRendererTitle(e),infos:[]},e.colorClassBreakInfos.forEach((e=>{r.infos.unshift({label:e.label||e.minValue+" - "+e.maxValue,value:[e.minValue,e.maxValue],symbol:this._getAppliedCloneSymbol(ae,e.color)})}));else if(ve(e)){const t=e.stops;let s=null;if(t.length&&(1===t.length&&(s=t[0].color),!s)){const e=t[0].value,l=t[t.length-1].value;if(null!=e&&null!=l){s=P(e+(l-e)/2,t)}}r={type:"symbol-table",title:null,infos:[{label:null,value:null,symbol:this._getAppliedCloneSymbol(ae,s||ae.color)}]};const i=U(e.stops);n={type:"color-ramp",title:l||this._getPointCloudRendererTitle(e),infos:i,preview:x(i.map((e=>e.color)))}}else we(e)&&(r={type:"symbol-table",title:l||this._getPointCloudRendererTitle(e),infos:[]},e.colorUniqueValueInfos.forEach((e=>{r.infos.push({label:e.label||e.values.join(", "),value:e.values.join(", "),symbol:this._getAppliedCloneSymbol(ae,e.color)})})));r&&r.infos.length&&s.push(r),n&&n.infos.length&&s.push(n);const i=s.reduce(((e,t)=>e.concat(t.infos)),[]).filter((e=>!!e.symbol)).map((t=>this._getSymbolPreview(t,this.opacity,{symbolConfig:{applyColorModulation:!!e.colorModulation}})));return d(i).then((()=>s))}_getElementInfoForDotDensity(e,t){const{backgroundColor:l,outline:s,dotSize:r}=e,n=this.effectList,i=null==n?void 0:n.effects.map((e=>e.toJSON())),a=L(i),o=r+"-"+t+"-"+l+"-"+(s&&JSON.stringify(s.toJSON()))+"-"+a,u=this._dotDensityUrlCache,c=u.has(o)?u.get(o):j(e,t);u.set(o,c);const d={shape:{type:"image",x:0,y:0,width:c.width,height:c.height,src:c.src},fill:null,stroke:null,offset:[0,0]},y=z([[d]],[c.width,c.height],{effectView:this.effectList});return{opacity:1,src:c.src,preview:y,width:c.width,height:c.height}}_constructDotDensityRendererLegendElements(e){const t=e.calculateDotValue(this.view.scale),l=e.legendOptions&&e.legendOptions.unit,s={type:"symbol-table",title:{value:t&&Math.round(t),unit:l||""},infos:[]};return e.attributes.forEach((t=>{const l=this._getElementInfoForDotDensity(e,t.color);l.label=t.label||t.valueExpressionTitle||t.field,s.infos.push(l)})),Promise.resolve([s])}async _constructRendererLegendElements(e,t={}){const{title:l,sublayer:s}=t,r=s||this.layer;let n=await this._loadRenderer(e);this._hasColorRamp=!1,this._hasOpacityRamp=!1,this._hasSizeRamp=!1,this._scaleDrivenSizeVariable=null;const i=await this._getVisualVariableLegendElements(n,r)||[],a={type:"symbol-table",title:l||this._getRendererTitle(n,r),infos:[]};let o=null,c=!1;const y=new Set;if(Me(n)){let e=l;const t=Pe(n)?"univariate-above-and-below-ramp":"univariate-color-size-ramp",s=i.findIndex((e=>"color-ramp"===e.type)),r=-1!==s?i.splice(s,1)[0]:null,a=i.findIndex((e=>"size-ramp"===e.type)),o=-1!==a?i.splice(a,1)[0]:null,u=[];r&&(e=r.title,u.push(r)),o&&(e=o.title,u.push(o)),u.length>0&&i.push({type:t,title:e,infos:u})}else if(ge(n)){const e=k(n);i.push({type:"heatmap-ramp",title:l,infos:e,preview:x(e.map((e=>e.color)),{effectList:this.effectList})})}else if(fe(n)){const e=n&&n.authoringInfo;if(e&&"relationship"===e.type){const{focus:t,numClasses:l,field1:s,field2:o}=e;if(l&&s&&o){const e=[s,o];let u=N(t)||0;for(const t of e){const{field:e,normalizationField:l,label:s}=t,n=s||{field:this._getFieldAlias(e,r),normField:l&&this._getFieldAlias(l,r)},i=Ue.clone();i.angle=u,a.infos.push({label:n,symbol:i}),y.add(i),u+=90}const c=q({focus:t,numClasses:l,infos:n.uniqueValueInfos});i.unshift(c)}}else{const e=n.field;n.uniqueValueInfos.forEach((t=>{t.symbol&&a.infos.push({label:t.label||this._getDomainName(e,t.value,r)||t.value,value:t.value,symbol:t.symbol})}))}n.defaultSymbol&&(a.infos.push({label:n.defaultLabel||"others",symbol:n.defaultSymbol}),c=!0)}else if(pe(n)){o=this._isUnclassedRenderer(n);(!o||!this._hasSizeRamp)&&(n.classBreakInfos.forEach((e=>{e.symbol&&a.infos.unshift({label:e.label||(o?null:e.minValue+" - "+e.maxValue),value:[e.minValue,e.maxValue],symbol:e.symbol})})),o&&(a.title=null),this._updateInfosforClassedSizeRenderer(n,a.infos)),n.defaultSymbol&&!o&&(a.infos.push({label:n.defaultLabel||"others",symbol:n.defaultSymbol}),c=!0)}else if(ye(n))if(je(this.layer)||Oe(this.layer)){const e=this._constructTileImageryStretchRendererElements(n);De(e)?i.push(e):a.infos=e}else{const e=this.layer;let t,l;n.statistics&&n.statistics.length&&(t=null!=n.statistics[0].min?n.statistics[0].min:n.statistics[0][0],l=null!=n.statistics[0].max?n.statistics[0].max:n.statistics[0][1]);let s=[];const r=u(e.renderingRule?await e.generateRasterInfo(e.renderingRule):e.serviceRasterInfo),o=r.keyProperties.BandProperties,c=ie[e.rasterInfo.pixelType.toLowerCase()];1===r.bandCount||e.bandIds&&1===e.bandIds.length?(t=null!=t?t:r.statistics?r.statistics[e.bandIds[0]].min:c[0],l=null!=l?l:r.statistics?r.statistics[e.bandIds[0]].max:c[1],t||l?i.push(this._getStretchLegendElements(n,{min:t,max:l})):this._getServerSideLegend()):r.bandCount>=3?o&&o.length>=r.bandCount?e.bandIds&&3===e.bandIds.length?(s=e.bandIds.map((e=>o[e].BandName)),a.infos=this._createSymbolTableElementMultiBand(s)):"lerc"===e.format?(s=[0,1,2].map((e=>o[e].BandName)),a.infos=this._createSymbolTableElementMultiBand(s)):this._getServerSideLegend():"lerc"===e.format?(s=["band1","band2","band3"],a.infos=this._createSymbolTableElementMultiBand(s)):this._getServerSideLegend():this._getServerSideLegend()}else if(de(n))n.colormapInfos.forEach((e=>{a.infos.push({label:e.label,value:e.value,symbol:this._getAppliedCloneSymbol(oe,e.color)})}));else if(me(n)){let e=n.symbol;switch(t.geometryType){case"point":e="pointSymbol"in r&&r.pointSymbol;break;case"polyline":e="lineSymbol"in r&&r.lineSymbol;break;case"polygon":e="polygonSymbol"in r&&r.polygonSymbol}n.symbol&&!this._hasSizeRamp&&a.infos.push({label:n.label,symbol:e})}else if(ce(n)){n.outputUnit&&(this.title="("+n.toJSON().outputUnit+")"),a.title=n.attributeField;const e=n.getClassBreakInfos();null!=e&&e.length?e.forEach((e=>{a.infos.push({label:e.minValue+" - "+e.maxValue,symbol:e.symbol})})):a.infos.push({label:n.attributeField,symbol:n.getDefaultSymbol()})}else he(n)&&i.push(this._getStretchLegendElements(n,{min:0,max:255}));const h=n.defaultSymbol;!h||c||me(n)||o&&!this._hasColorRamp&&!this._hasSizeRamp&&!this._hasOpacityRamp||i.push({type:"symbol-table",infos:[{label:n.defaultLabel||"others",symbol:h}]}),a.infos.length&&i.unshift(a);const m=null==t.opacity?this.opacity:t.opacity,p=this._isTallSymbol("visualVariables"in n&&n.visualVariables),f=xe(this.layer)||je(this.layer),g=i.reduce(((e,t)=>e.concat(this._getAllInfos(t))),[]).filter((e=>!(null==e||!e.symbol))).map((e=>this._getSymbolPreview(e,m,{isDefault:e.symbol===h,applyScaleDrivenSize:!y.has(e.symbol),symbolConfig:{isTall:p,isSquareFill:f},effectList:y.has(e.symbol)?null:this.effectList})));return n=null,await d(g),i}_getServerSideLegend(){setTimeout((()=>this.buildLegendElementsForTools()),0)}_getAllInfos(e){const t=null==e?void 0:e.infos;return t?t.reduce(((e,t)=>e.concat(this._getAllInfos(t))),[]):[e]}_constructTileImageryStretchRendererElements(e){var t,l;const s=this.layer,r=s.rasterInfo,n=r.bandCount||e.statistics.length;let i,a,o=[];const u=r.keyProperties&&r.keyProperties.BandProperties,c=null!=e&&null!=(t=e.statistics)&&t.length?e.statistics:null==r?void 0:r.statistics;if(c)i=void 0!==c[0].min?c[0].min:c[0][0],a=c[0].max||c[0][1];else{const e=ie[s.rasterInfo.pixelType.toLowerCase()];i=e[0],a=e[1]}if(s.hasStandardTime()&&(i=s.getStandardTimeValue(i),a=s.getStandardTimeValue(a)),1===r.bandCount||1===(null==(l=s.bandIds)?void 0:l.length))return this._getStretchLegendElements(e,{min:i,max:a});function d(e){var t;const l=(null!=s&&null!=(t=s.bandIds)&&t.length?s.bandIds:Array.from(Array(Math.min(r.bandCount,3)).keys())).map((t=>e&&e[t]&&e[t].BandName||"band"+(t+1)));return l.length<3?l.push(l[1]):l.length>3&&l.splice(3),l}return o=u&&u.length>=n?d(u):d(),this._createSymbolTableElementMultiBand(o)}_getStretchLegendElements(e,t){const l=e.colorRamp,s=A(l,t);return{type:"stretch-ramp",title:"",infos:s,preview:x(s.map((e=>e.color)))}}async _getSizeLegendElement(e,t,l,s){return{type:"size-ramp",title:this._hasClusterSizeVariable?this._getClusterTitle(t):e,infos:await W(l,t,await this._getMedianColor(l),this.scale,this.view.type,s)}}_createSymbolTableElementMultiBand(e){const t=[],l=["red","green","blue"];return e.forEach(((e,s)=>{t.push({label:{colorName:l[s],bandName:e},src:H[s],opacity:1})})),t}_updateInfosforClassedSizeRenderer(e,t){const l=e.authoringInfo&&"class-breaks-size"===e.authoringInfo.type,s=e.classBreakInfos.some((e=>D(e.symbol)));if(l&&s){const l=$,s=G,r=e.classBreakInfos.length,n=(l-s)/(r>1?r-1:r);t.forEach(((e,t)=>{e.size=l-n*t}))}}_isTallSymbol(e){let t=!1,l=!1;if(e)for(let s=0;s<e.length&&(!t||!l);s++){const r=e[s];"size"===r.type&&("height"===r.axis&&(t=!0),"width-and-depth"===r.axis&&(l=!0))}return t&&l}async _getSymbolPreview(e,t,l){let s=null!=l&&l.isDefault||null!=e.size||!this._hasSizeRamp?e.size:h(T.size);if(this._scaleDrivenSizeVariable&&null!=l&&l.applyScaleDrivenSize){const{getSize:t}=await import("../../../renderers/visualVariables/support/visualVariableUtils.js");s=t(this._scaleDrivenSizeVariable,null,{view:this.view.type,scale:this.scale,shape:"simple-marker"===e.symbol.type?e.symbol.style:null})}return O(e.symbol,{size:s,opacity:t,scale:!1,symbolConfig:null==l?void 0:l.symbolConfig,effectView:null==l?void 0:l.effectList}).then((t=>(e.preview=t,e))).catch((()=>(e.preview=null,e)))}async _loadRenderer(e){var t,l;const s=[],r=this.layer;e=e.clone(),this._hasClusterSizeVariable=!1;const n="visualVariables"in e&&(null==(t=e.visualVariables)?void 0:t.some((e=>"size"===e.type&&"outline"!==e.target&&!re.test(e.valueExpression))));if(e&&"visualVariables"in e&&!n&&"featureReduction"in r&&"cluster"===(null==(l=r.featureReduction)?void 0:l.type)){const t=this.layerView._effectiveRenderer,l=u(M(t,this.view));if(l){const t=r.featureReduction;if("clusterMinSize"in t&&"clusterMaxSize"in t){const{clusterMinSize:e,clusterMaxSize:s}=t;l.legendOptions=new V({showLegend:e!==s})}const s=e.visualVariables||[];e.visualVariables=s.concat([l]),this._hasClusterSizeVariable=!0}}const i=await this._getMedianColor(e);if(pe(e)||fe(e)){const t=(e.classBreakInfos||e.uniqueValueInfos).map((e=>this._fetchSymbol(e.symbol,i).then((t=>{e.symbol=t})).catch((()=>{e.symbol=null}))));Array.prototype.push.apply(s,t)}return s.push(this._fetchSymbol(e.symbol||e.defaultSymbol,e.defaultSymbol?null:i).then((t=>{this._applySymbolToRenderer(e,t,me(e))})).catch((()=>{this._applySymbolToRenderer(e,null,me(e))}))),d(s).then((()=>e))}_applySymbolToRenderer(e,t,l){l?e.symbol=t:e.defaultSymbol=t}async _getMedianColor(e){if(!("visualVariables"in e)||!e.visualVariables)return null;const t=e.visualVariables.find((e=>"color"===e.type));if(!t)return null;let l=null,s=null;if(t.stops){if(1===t.stops.length)return t.stops[0].color;l=t.stops[0].value,s=t.stops[t.stops.length-1].value}const r=l+(s-l)/2,{getColor:n}=await import("../../../renderers/visualVariables/support/visualVariableUtils.js");return n(t,r)}_fetchSymbol(e,t){if(!e)return Promise.reject();if("web-style"===e.type){const l=e.portal,s=l&&l.url,r=l&&l.user&&l.user.username,n=e.name+"-"+e.styleName+"-"+e.styleUrl+"-"+s+"-"+r,i=this._webStyleSymbolCache;return i.has(n)||("2d"===this.view.type?i.set(n,e.fetchCIMSymbol()):i.set(n,e.fetchSymbol())),i.get(n).then((e=>this._getAppliedCloneSymbol(e,t))).catch((()=>(Z.warn("Fetching web-style failed!"),Promise.reject())))}return Promise.resolve(this._getAppliedCloneSymbol(e,t))}_getAppliedCloneSymbol(e,l){if(!e||!l)return e;const s=e.clone(),r=l&&l.toRgba();return s.type.indexOf("3d")>-1?this._applyColorTo3dSymbol(s,r):"cim"===s.type?F(s,l):s.color&&(s.color=new t(r||s.color)),s}_applyColorTo3dSymbol(e,l){l&&e.symbolLayers.forEach((e=>{e&&(e.material||(e.material={}),e.material.color=new t(l))}))}async _getVisualVariableLegendElements(e,t){if(!("visualVariables"in e)||!e.visualVariables||"vector-field"===e.type)return null;const l=e.visualVariables,s=[],r=[],n=[];for(const c of l)"color"===c.type?s.push(c):"size"===c.type?r.push(c):"opacity"===c.type&&n.push(c);const i=[...s,...r,...n];let a,o;if(0===s.length&&pe(e)&&e.classBreakInfos&&1===e.classBreakInfos.length){const t=e.classBreakInfos[0];a=t&&t.symbol}if(0===s.length&&me(e)&&(a=e.symbol),a)if(a.type.indexOf("3d")>-1){const e=a.symbolLayers.getItemAt(0);"water"===e.type?c(e.color)&&(o=e.color):c(e.material)&&c(e.material.color)&&(o=e.material.color)}else a.url||(o=a.color);const u=this.effectList;return(await Promise.all(i.map((async l=>{if(!l.legendOptions||!1!==l.legendOptions.showLegend){const s=this._getRampTitle(l,t);let r=null;const n="getField"in t&&t.getField&&t.getField(l.field),i=n&&I(n);if("color"===l.type){const e=await B(l,null,i);r={type:"color-ramp",title:s,infos:e,preview:x(e.map((e=>e.color)),{effectList:u})},this._hasColorRamp||(this._hasColorRamp=!(null==r.infos||!r.infos.length))}else if("size"===l.type&&"outline"!==l.target)re.test(l.valueExpression)?this._hasClusterSizeVariable||(this._scaleDrivenSizeVariable=l):(r=await this._getSizeLegendElement(s,l,e,i),this._hasSizeRamp||(this._hasSizeRamp=!(null==r.infos||!r.infos.length)));else if("opacity"===l.type){const e=await B(l,o,i);r={type:"opacity-ramp",title:s,infos:e,preview:x(e.map((e=>e.color)),{effectList:u})},this._hasOpacityRamp||(this._hasOpacityRamp=!(null==r.infos||!r.infos.length))}return r&&r.infos?r:null}})))).filter((e=>!!e))}_getDomainName(e,t,l){if(e&&"function"!=typeof e){const s="getField"in l&&l.getField&&l.getField(e),r=s&&"getFieldDomain"in l&&l.getFieldDomain?l.getFieldDomain(s.name):null;return r&&"coded-value"===r.type?r.getName(t):null}return null}_getClusterTitle(e){const t=this.layer,l=e.field;if("featureReduction"in t&&t.featureReduction&&"cluster"===t.featureReduction.type){const e=t.featureReduction,s="popupTemplate"in e&&e.popupTemplate,r=s&&s.fieldInfos;if(r)for(const t of r)if(t.fieldName===l)return"cluster_count"===l?t.label||{showCount:!0}:t.label}return{showCount:!0}}_getRampTitle(e,t){let l=e.field,s=e.normalizationField,r=!1,n=!1,i=!1,a=null;l="function"==typeof l?null:l,s="function"==typeof s?null:s;const o=e.legendOptions&&e.legendOptions.title;if(null!=o)a=o;else if(e.valueExpressionTitle)a=e.valueExpressionTitle;else{if("renderer"in t&&t.renderer&&"authoringInfo"in t.renderer&&t.renderer.authoringInfo&&t.renderer.authoringInfo.visualVariables){const e=t.renderer.authoringInfo.visualVariables;for(let t=0;t<e.length;t++){const l=e[t];if("color"===l.type){if("ratio"===l.style){r=!0;break}if("percent"===l.style){n=!0;break}if("percent-of-total"===l.style){i=!0;break}}}}a={field:l&&this._getFieldAlias(l,t),normField:s&&this._getFieldAlias(s,t),ratio:r,ratioPercent:n,ratioPercentTotal:i}}return a}_getRendererTitle(e,t){const l=e;if(l.legendOptions&&l.legendOptions.title)return l.legendOptions.title;if(l.valueExpressionTitle)return l.valueExpressionTitle;let s=l.field,r=null,n=null;pe(l)&&(r=l.normalizationField,n="percent-of-total"===l.normalizationType),s="function"==typeof s?null:s,r="function"==typeof r?null:r;let i=null;return(s||r)&&(i={field:s&&this._getFieldAlias(s,t),normField:r&&this._getFieldAlias(r,t),normByPct:n}),i}_getFieldAlias(e,t){const l="popupTemplate"in t&&t.popupTemplate,s=l&&l.fieldInfos;let r=null;s&&s.some((t=>e===t.fieldName&&(r=t,!0)));let n=null;"getField"in t&&t.getField?n=t.getField(e):"fieldsIndex"in t&&t.fieldsIndex&&(n=t.fieldsIndex.get(e));const i=r||n;let a=null;return i&&(a=r&&r.label||n&&n.alias||"name"in i&&i.name||"fieldName"in i&&i.fieldName),a}_isUnclassedRenderer(e){const t=e.visualVariables;let l=!1;return pe(e)&&e.classBreakInfos&&1===e.classBreakInfos.length&&t&&(l=e.field?t.some((t=>!(!t||e.field!==t.field||(e.normalizationField||t.normalizationField)&&e.normalizationField!==t.normalizationField))):!!t.length),l}};e([S()],Be.prototype,"children",void 0),e([S({readOnly:!0})],Be.prototype,"effectList",null),e([S()],Be.prototype,"layerView",void 0),e([S()],Be.prototype,"layer",void 0),e([S()],Be.prototype,"legendElements",void 0),e([S({readOnly:!0})],Be.prototype,"opacity",null),e([S()],Be.prototype,"parent",void 0),e([S({readOnly:!0,dependsOn:[]})],Be.prototype,"ready",null),e([S()],Be.prototype,"hideLayersNotInCurrentView",void 0),e([S()],Be.prototype,"keepCacheOnDestroy",void 0),e([S()],Be.prototype,"respectLayerVisibility",void 0),e([S({readOnly:!0})],Be.prototype,"scale",null),e([S()],Be.prototype,"sublayerIds",void 0),e([S({readOnly:!0})],Be.prototype,"isScaleDriven",null),e([S()],Be.prototype,"title",void 0),e([S({readOnly:!0,dependsOn:["ready"],value:0})],Be.prototype,"version",null),e([S()],Be.prototype,"view",void 0),Be=e([_("esri.widgets.Legend.support.ActiveLayerInfo")],Be);const ke=Be;export{ke as default};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.23/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import e from"../../../Color.js";import{isSymbol3D as l}from"../../../symbols.js";import{round as t,numDigits as n,percentChange as
|
|
5
|
+
import e from"../../../Color.js";import{isSymbol3D as l}from"../../../symbols.js";import{round as t,numDigits as n,percentChange as o}from"../../../renderers/support/numberUtils.js";import{applyCIMSymbolColor as i}from"../../../symbols/support/cimSymbolUtils.js";import{isVolumetricSymbol as s,getSymbolOutlineSize as r}from"../../../symbols/support/utils.js";import{createStopLabel as a}from"./utils.js";import{isDarkTheme as u}from"../../support/widgetThemeUtils.js";import c from"../../../symbols/SimpleLineSymbol.js";const m=30,f=12,p=[255,255,255],y=[200,200,200],b=[128,128,128],d=20,h=5;function v(e){return"esri.symbols.SimpleMarkerSymbol"===e.declaredClass}function g(e){return"esri.symbols.PictureMarkerSymbol"===e.declaredClass}function w(e){return"esri.symbols.SimpleLineSymbol"===e.declaredClass}function S(e){return"esri.symbols.TextSymbol"===e.declaredClass}function z(e,l){const t=e.length-1;return e.map(((e,n)=>a(e,n,t,l)))}async function x(e,l,n,o,i,a){var u,c;const m=l.legendOptions,f=m&&m.customValues,p=k(e,n),y=!!p,b=!!f,d=null!=l.minSize&&null!=l.maxSize,h=l.stops&&l.stops.length>1,v=!!l.target;if(!y||!b&&!(d||h&&!v))return;const g=s(p);let w=null,S=null,x=null;S=g&&!h?t([l.minDataValue,l.maxDataValue]):f||await O(l,p,o,i);const L=null==e?void 0:e.authoringInfo,C="univariate-color-size"===(null==L?void 0:L.type),I=C&&"above-and-below"===(null==L?void 0:L.univariateTheme);if(!S&&h&&(S=l.stops.map((e=>e.value)),w=l.stops.some((e=>!!e.label)),w&&(x=l.stops.map((e=>e.label)))),g&&(null==(u=S)?void 0:u.length)>2&&!I&&(S=[S[0],S[S.length-1]]),!S)return null;C&&5!==(null==(c=S)?void 0:c.length)&&(S=U({minSize:S[0],maxSize:S[S.length-1]}));const D=g?V(e,S):null,M=r(p),q=w?null:z(S,a);return(await Promise.all(S.map((async(t,n)=>{const s=g?D[n]:await T(l,p,t,o,i);return{value:t,symbol:E(I&&"class-breaks"===e.type?j(e,n):p,s),label:w?x[n]:q[n],size:s,outlineSize:M}})))).reverse()}function V(e,l){const t=null==e?void 0:e.authoringInfo,n="univariate-color-size"===(null==t?void 0:t.type);let o=[f,m];if(n){const e=l[0],t=l[l.length-1],n=f,i=m;o=l.map((l=>n+(l-e)/(t-e)*(i-n)))}return n&&"below"===(null==t?void 0:t.univariateTheme)&&o.reverse(),o}function j(e,l){const t=e.classBreakInfos,n=t.length,o=n<2||!(l>=2)?t[0].symbol.clone():t[n-1].symbol.clone();return e.visualVariables.some((e=>"color"===e.type))&&(o.type.indexOf("3d")>-1?C(o):I(o)),o}function k(e,l){if("flow"===e.type)return new c({cap:"butt",color:l});let t=null,n=null;if("simple"===e.type)t=e.symbol;else if("class-breaks"===e.type){const l=e.classBreakInfos;t=l&&l[0]&&l[0].symbol,n=l.length>1}else if("unique-value"===e.type){const l=e.uniqueValueInfos;t=l&&l[0]&&l[0].symbol,n=l.length>1}return!t||L(t)?null:(t=t.clone(),(l||n)&&(t.type.indexOf("3d")>-1?C(t):I(t)),t)}function L(e){if(e){if(l(e)){return!!e.symbolLayers&&e.symbolLayers.some((e=>e&&"fill"===e.type))}return-1!==e.type.indexOf("fill")}return!1}function C(e){"line-3d"===e.type?e.symbolLayers.forEach((e=>{e.material={color:b}})):e.symbolLayers.forEach((e=>{"icon"!==e.type||e.resource&&e.resource.href?e.material={color:y}:(e.material={color:p},e.outline={color:b,size:1.5})}))}function I(l){const t=u();if("cim"===l.type)i(l,new e(y));else if(-1!==l.type.indexOf("line"))l.color=b;else if(l.color=t?b:p,"simple-marker"===l.type)if(l.outline){var n,o;"#ffffff"===(null==(n=l.outline)||null==(o=n.color)?void 0:o.toHex())&&(l.outline.color=b)}else l.outline={color:b,width:1.5}}async function O(e,l,n,o){const i=(await import("../../../renderers/visualVariables/support/visualVariableUtils.js")).getSizeRangeAtScale(e,n,o),s=i&&U(i);if(!i&&!s)return;let r=s.map((l=>D(l,e,i)));r=t(r);for(let t=1;t<r.length-1;t++){const i=await M(e,l,r[t],r[t-1],n,o);i&&(r[t]=i[0],s[t]=i[1])}return r}function U(e){const l=e.minSize,t=e.maxSize,n=h,o=(t-l)/(n-1),i=[];for(let s=0;s<n;s++)i.push(l+o*s);return i}function D(e,l,t){const n=t.minSize,o=t.maxSize,i=l.minDataValue,s=l.maxDataValue;let r=null;if(e<=n)r=i;else if(e>=o)r=s;else{r=(e-n)/(o-n)*(s-i)+i}return r}async function M(e,l,i,s,r,a){const u=await T(e,l,i,r,a),c=await T(e,l,s,r,a),m=n(i),f=m.fractional,p=d;let y=m.integer,b=null,h=null;i>0&&i<1&&(b=10**f,y=n(i*=b).integer);for(let n=y-1;n>=0;n--){const s=10**n;let m=Math.floor(i/s)*s,f=Math.ceil(i/s)*s;null!=b&&(m/=b,f/=b);let y=(m+f)/2;[,y]=t([m,y,f],{indexes:[1]});const d=await T(e,l,m,r,a),v=await T(e,l,f,r,a),g=await T(e,l,y,r,a),w=o(u,d,c,null),S=o(u,v,c,null),z=o(u,g,c,null);let x=w.previous<=p,V=S.previous<=p;if(x&&V&&(w.previous<=S.previous?(x=!0,V=!1):(V=!0,x=!1)),x?h=[m,d]:V?h=[f,v]:z.previous<=p&&(h=[y,g]),h)break}return h}async function T(e,l,t,n,o){const{getSize:i}=await import("../../../renderers/visualVariables/support/visualVariableUtils.js");return i(e,t,{scale:n,view:o,shape:"simple-marker"===l.type?l.style:null})}function E(e,t){const n=e.clone();if(l(n))s(n)||n.symbolLayers.forEach((e=>{"fill"!==e.type&&(e.size=t)}));else if(v(n))n.size=t;else if(g(n)){const e=n.width,l=n.height;n.height=t,n.width=t*(e/l)}else w(n)?n.width=t:S(n)&&n.font&&(n.font.size=t);return n}export{m as REAL_WORLD_MAX_SIZE,f as REAL_WORLD_MIN_SIZE,x as getRampStops};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.23/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{_ as e}from"../../chunks/tslib.es6.js";import t from"../../Color.js";import i from"../../core/Accessor.js";import"../../core/has.js";import r from"../../core/Handles.js";import{abortMaybe as s,destroyMaybe as o,isSome as n,unwrapOr as a,isNone as l,mapOr as p,applySome as u}from"../../core/maybe.js";import{createTask as d,after as c,throwIfAborted as h}from"../../core/promiseUtils.js";import{watch as m,syncAndInitial as f}from"../../core/reactiveUtils.js";import{createScreenPointArray as _,createRenderScreenPointArray as w}from"../../core/screenUtils.js";import{convertTime as v,offsetDateUTC as y}from"../../core/timeUtils.js";import{property as g}from"../../core/accessorSupport/decorators/property.js";import"../../core/arrayUtils.js";import"../../core/accessorSupport/ensureType.js";import{subclass as T}from"../../core/accessorSupport/decorators/subclass.js";import{c as D}from"../../chunks/vec3f64.js";import{longitudeToTimezone as P}from"../../views/3d/support/earthUtils.js";import{computeDirectionsOverTime as O}from"../../views/3d/support/sunUtils.js";import{a as b}from"../../chunks/ShadowCast.glsl.js";import V from"./DiscreteOptions.js";import{DurationMode as j}from"./DurationMode.js";import z from"./DurationOptions.js";import{ShadowCastState as U}from"./ShadowCastState.js";import{ShadowTooltipViewModel as C}from"./ShadowTooltipViewModel.js";import{ShadowVisualizationType as E}from"./ShadowVisualizationType.js";import S from"./ThresholdOptions.js";import{breadthFirstBinaryPartitioning as R}from"../support/traversalUtils.js";const A=[],N=D(),k=[],x=255,M=v(1,"hours","milliseconds"),F=500;let G=class extends i{constructor(e){super(e),this.view=null,this.tooltip=new C({getDuration:(e,t)=>this.getDuration(e,t)}),this.startTimeOfDay=v(10,"hours","milliseconds"),this.endTimeOfDay=v(16,"hours","milliseconds"),this.visualizationType=E.Threshold,this.thresholdOptions=new S,this.durationOptions=new z,this.discreteOptions=new V,this._running=!0,this._handles=new r,this._stopPreviewingTask=null,this._forcePreview=null,this._autoRestoreForcePreviewEnabled=!0,this._utcOffset=null,this.date=new Date}initialize(){this._handles.add([m((()=>({view:this.view,tooltipEnabled:this._tooltipEnabled})),(({view:e,tooltipEnabled:t})=>{this.tooltip.view=e,this.tooltip.enabled=t}),f),m((()=>this._forcePreviewDependencies),(()=>{s(this._stopPreviewingTask),this._forcePreview=!0,this._autoRestoreForcePreviewEnabled&&(this._stopPreviewingTask=d((async e=>{await c(F,e),h(e),this._forcePreview=!1})))}),f),m((()=>({renderView:this.renderView,parameters:this._visualizationParameters})),B,f),m((()=>({renderView:this.renderView,parameters:{lightDirections:this._lightDirections}})),B,f),m((()=>({renderView:this.renderView,parameters:{enabled:this._running}})),B,f),m((()=>({renderView:this.renderView,parameters:{previewing:this._previewing}})),B,f)])}destroy(){this.stop(),this._handles=o(this._handles),o(this.tooltip)}get state(){return n(this.view)&&this.view.ready&&n(this._referencePosition)?U.Ready:U.Disabled}set date(e){const t=new Date(e);t.setHours(0,0,0,0),this._set("date",t)}get utcOffset(){return a(this._utcOffset,this._utcOffsetAuto)}set utcOffset(e){this._utcOffset=e}get testData(){return{setAutoRestoreForcedPreviewEnabled:e=>{this._autoRestoreForcePreviewEnabled=e},setForcedPreview:e=>{this._forcePreview=e},isPreviewing:()=>this._previewing}}get _previewing(){const{view:e}=this;return!(!l(e)&&!l(e.allLayerViews))||(this._forcePreview||!e.stationary||e.allLayerViews.some((e=>H(e)&&e.updating)))}get _utcOffsetAuto(){const e=this._referencePosition;return p(e,0,(e=>P(e[0],!1)))}get _dateUTCOffset(){let e=this.date;return e=y(e,-e.getTimezoneOffset(),"minutes"),e=y(e,-this.utcOffset,"hours"),e}get _startDateTimeUTC(){return y(this._dateUTCOffset,this.startTimeOfDay)}get _endDateTimeUTC(){return y(this._dateUTCOffset,this.endTimeOfDay)}get _referencePosition(){return u(this.view,(e=>u(e.environmentManager,(e=>e.referencePositionWGS84Comparable))))}get _interval(){const e=this._duration>0?Math.floor(this._duration/x):x,t=this.discreteOptions.interval;switch(this.visualizationType){case E.Threshold:case E.Duration:return e;case E.Discrete:return t>0?t:e}}get _sampleCount(){return this._lightDirections.length}get _duration(){return this.endTimeOfDay-this.startTimeOfDay}get _lightDirections(){const{view:e}=this;if(l(e))return A;const t="global"===e.viewingMode?N:this._referencePosition;if(l(t))return A;const i=this._interval,r=O(this._startDateTimeUTC,this._endDateTimeUTC,i,t,e.state.viewingMode),s=r.length;k.length=0;const o=R(0,s,k),n=new Array(s);for(let a=0;a<s;++a)n[a]=r[o[a]];return n}get _tooltipEnabled(){return this.state===U.Ready&&this.visualizationType!==E.Discrete&&this._running&&!this._previewing}get _visualizationParameters(){if(!this._running)return null;switch(this.visualizationType){case E.Threshold:return this._thresholdVisualizationParameters;case E.Duration:return this._durationVisualizationParameters;case E.Discrete:return this._discreteVisualizationParameters}}get _thresholdVisualizationParameters(){const{value:e,color:i}=this.thresholdOptions,r=this._duration;return{visualization:b.Threshold,color:t.toUnitRGBA(i),threshold:r>0?e/this._duration:0}}get _durationVisualizationParameters(){const{color:e,mode:i}=this.durationOptions,r=this._duration,s=r>0&&i===j.Hourly?M/r:0;return{color:t.toUnitRGBA(e),visualization:b.Gradient,bandsEnabled:s>0,bandSize:s}}get _discreteVisualizationParameters(){return{color:t.toUnitRGBA(this.discreteOptions.color),visualization:b.Gradient,bandsEnabled:!1,bandSize:0}}get _forcePreviewDependencies(){const{view:e}=this;if(l(e))return null;const t=e.slicePlane,i=e.allLayerViews.toArray().filter(H),r=i.map((e=>e.layer)).filter(n),s=i.map((e=>e.visible)),o=r.map((e=>e.visible)),a=r.map((e=>e.opacity)),p=r.filter((function(e){return"definitionExpression"in e})).map((e=>e.definitionExpression)),u=i.filter((function(e){return"filter"in e})).map((e=>e.filter));return{slicePlane:t,startDateUTC:this._startDateTimeUTC,endDateUTC:this._endDateTimeUTC,layerViewVisibilities:s,layerVisibilities:o,layerOpacities:a,filters:u,definitionExpressions:p}}get renderView(){const{view:e}=this;if(l(e))return null;const t=e._stage;return l(t)?null:t.renderView}start(){this._running=!0}stop(){this._running=!1}setRunning(e){this._running=e}async getDuration(e,t){const{view:i,renderView:r}=this;if(l(i)||l(r))return 0;const s=i.state.camera.screenToRender(_(e.x,e.y),w()),o=r.readAccumulatedShadow(s),n=this._sampleCount;if(0===n)return 0;return o*n*(this._duration/n)}};function B({renderView:e,parameters:t}){n(e)&&n(t)&&e.setRenderParameters({shadowCastOptions:t})}function H(e){if(e.suspended)return!1;switch(e.type){case"analysis-3d":case"building-scene-3d":case"csv-3d":case"elevation-3d":case"feature-3d":case"geojson-3d":case"graphics-3d":case"integrated-mesh-3d":case"ogc-feature-3d":case"scene-layer-3d":case"scene-layer-graphics-3d":case"stream-3d":case"wms-3d":return!0;case"base-dynamic-3d":case"imagery-3d":case"imagery-tile-3d":case"map-image-3d":case"point-cloud-3d":case"tile-3d":case"vector-tile-3d":case"voxel-3d":case"wfs-3d":case"wmts-3d":default:return!1;case"group":return e.layerViews.toArray().some((e=>H(e)))}}e([g()],G.prototype,"state",null),e([g()],G.prototype,"view",void 0),e([g()],G.prototype,"tooltip",void 0),e([g({nonNullable:!0})],G.prototype,"date",null),e([g({nonNullable:!0})],G.prototype,"utcOffset",null),e([g({nonNullable:!0})],G.prototype,"startTimeOfDay",void 0),e([g({nonNullable:!0})],G.prototype,"endTimeOfDay",void 0),e([g({nonNullable:!0})],G.prototype,"visualizationType",void 0),e([g({type:S,nonNullable:!0})],G.prototype,"thresholdOptions",void 0),e([g({type:z,nonNullable:!0})],G.prototype,"durationOptions",void 0),e([g({type:V,nonNullable:!0})],G.prototype,"discreteOptions",void 0),e([g()],G.prototype,"_running",void 0),e([g()],G.prototype,"_handles",void 0),e([g()],G.prototype,"_stopPreviewingTask",void 0),e([g()],G.prototype,"_forcePreview",void 0),e([g()],G.prototype,"_autoRestoreForcePreviewEnabled",void 0),e([g()],G.prototype,"_previewing",null),e([g()],G.prototype,"_utcOffset",void 0),e([g()],G.prototype,"_utcOffsetAuto",null),e([g()],G.prototype,"_dateUTCOffset",null),e([g()],G.prototype,"_startDateTimeUTC",null),e([g()],G.prototype,"_endDateTimeUTC",null),e([g()],G.prototype,"_referencePosition",null),e([g()],G.prototype,"_interval",null),e([g()],G.prototype,"_sampleCount",null),e([g()],G.prototype,"_duration",null),e([g()],G.prototype,"_lightDirections",null),e([g()],G.prototype,"_tooltipEnabled",null),e([g()],G.prototype,"_visualizationParameters",null),e([g()],G.prototype,"_thresholdVisualizationParameters",null),e([g()],G.prototype,"_durationVisualizationParameters",null),e([g()],G.prototype,"_discreteVisualizationParameters",null),e([g()],G.prototype,"_forcePreviewDependencies",null),e([g()],G.prototype,"renderView",null),G=e([T("esri.widgets.ShadowCast.ShadowCastViewModel")],G);const L=G;export{L as default};
|
|
5
|
+
import{_ as e}from"../../chunks/tslib.es6.js";import t from"../../Color.js";import i from"../../core/Accessor.js";import"../../core/has.js";import r from"../../core/Handles.js";import{abortMaybe as s,destroyMaybe as o,isSome as n,unwrapOr as a,isNone as l,mapOr as p,applySome as u}from"../../core/maybe.js";import{createTask as d,after as c,throwIfAborted as h}from"../../core/promiseUtils.js";import{watch as m,syncAndInitial as f}from"../../core/reactiveUtils.js";import{createScreenPointArray as _,createRenderScreenPointArray as w}from"../../core/screenUtils.js";import{convertTime as v,offsetDateUTC as y}from"../../core/timeUtils.js";import{property as g}from"../../core/accessorSupport/decorators/property.js";import"../../core/arrayUtils.js";import"../../core/accessorSupport/ensureType.js";import{subclass as T}from"../../core/accessorSupport/decorators/subclass.js";import{c as D}from"../../chunks/vec3f64.js";import{longitudeToTimezone as P}from"../../views/3d/support/earthUtils.js";import{computeDirectionsOverTime as O}from"../../views/3d/support/sunUtils.js";import{a as b}from"../../chunks/ShadowCast.glsl.js";import V from"./DiscreteOptions.js";import{DurationMode as j}from"./DurationMode.js";import z from"./DurationOptions.js";import{ShadowCastState as U}from"./ShadowCastState.js";import{ShadowTooltipViewModel as C}from"./ShadowTooltipViewModel.js";import{ShadowVisualizationType as E}from"./ShadowVisualizationType.js";import S from"./ThresholdOptions.js";import{breadthFirstBinaryPartitioning as R}from"../support/traversalUtils.js";const A=[],N=D(),k=[],x=255,M=v(1,"hours","milliseconds"),F=500;let G=class extends i{constructor(e){super(e),this.view=null,this.tooltip=new C({getDuration:(e,t)=>this.getDuration(e,t)}),this.startTimeOfDay=v(10,"hours","milliseconds"),this.endTimeOfDay=v(16,"hours","milliseconds"),this.visualizationType=E.Threshold,this.thresholdOptions=new S,this.durationOptions=new z,this.discreteOptions=new V,this._running=!0,this._handles=new r,this._stopPreviewingTask=null,this._forcePreview=null,this._autoRestoreForcePreviewEnabled=!0,this._utcOffset=null,this.date=new Date}initialize(){this._handles.add([m((()=>({view:this.view,tooltipEnabled:this._tooltipEnabled})),(({view:e,tooltipEnabled:t})=>{this.tooltip.view=e,this.tooltip.enabled=t}),f),m((()=>this._forcePreviewDependencies),(()=>{s(this._stopPreviewingTask),this._forcePreview=!0,this._autoRestoreForcePreviewEnabled&&(this._stopPreviewingTask=d((async e=>{await c(F,e),h(e),this._forcePreview=!1})))}),f),m((()=>({renderView:this.renderView,parameters:this._visualizationParameters})),B,f),m((()=>({renderView:this.renderView,parameters:{lightDirections:this._lightDirections}})),B,f),m((()=>({renderView:this.renderView,parameters:{enabled:this._running}})),B,f),m((()=>({renderView:this.renderView,parameters:{previewing:this._previewing}})),B,f)])}destroy(){this.stop(),this._handles=o(this._handles),o(this.tooltip)}get state(){return n(this.view)&&this.view.ready&&n(this._referencePosition)?U.Ready:U.Disabled}set date(e){const t=new Date(e);t.setHours(0,0,0,0),this._set("date",t)}get utcOffset(){return a(this._utcOffset,this._utcOffsetAuto)}set utcOffset(e){this._utcOffset=e}get testData(){return{setAutoRestoreForcedPreviewEnabled:e=>{this._autoRestoreForcePreviewEnabled=e},setForcedPreview:e=>{this._forcePreview=e},isPreviewing:()=>this._previewing}}get _previewing(){const{view:e}=this;return!(!l(e)&&!l(e.allLayerViews))||(this._forcePreview||!e.stationary||e.allLayerViews.some((e=>H(e)&&e.updating)))}get _utcOffsetAuto(){const e=this._referencePosition;return p(e,0,(e=>P(e[0],!1)))}get _dateUTCOffset(){let e=this.date;return e=y(e,-e.getTimezoneOffset(),"minutes"),e=y(e,-this.utcOffset,"hours"),e}get _startDateTimeUTC(){return y(this._dateUTCOffset,this.startTimeOfDay)}get _endDateTimeUTC(){return y(this._dateUTCOffset,this.endTimeOfDay)}get _referencePosition(){return u(this.view,(e=>u(e.environmentManager,(e=>e.referencePositionWGS84Comparable))))}get _interval(){const e=this._duration>0?Math.floor(this._duration/x):x,t=this.discreteOptions.interval;switch(this.visualizationType){case E.Threshold:case E.Duration:return e;case E.Discrete:return t>0?t:e}}get _sampleCount(){return this._lightDirections.length}get _duration(){return this.endTimeOfDay-this.startTimeOfDay}get _lightDirections(){const{view:e}=this;if(l(e))return A;const t="global"===e.viewingMode?N:this._referencePosition;if(l(t))return A;const i=this._interval,r=O(this._startDateTimeUTC,this._endDateTimeUTC,i,t,e.state.viewingMode),s=r.length;k.length=0;const o=R(0,s,k),n=new Array(s);for(let a=0;a<s;++a)n[a]=r[o[a]];return n}get _tooltipEnabled(){return this.state===U.Ready&&this.visualizationType!==E.Discrete&&this._running&&!this._previewing}get _visualizationParameters(){if(!this._running)return null;switch(this.visualizationType){case E.Threshold:return this._thresholdVisualizationParameters;case E.Duration:return this._durationVisualizationParameters;case E.Discrete:return this._discreteVisualizationParameters}}get _thresholdVisualizationParameters(){const{value:e,color:i}=this.thresholdOptions,r=this._duration;return{visualization:b.Threshold,color:t.toUnitRGBA(i),threshold:r>0?e/this._duration:0}}get _durationVisualizationParameters(){const{color:e,mode:i}=this.durationOptions,r=this._duration,s=r>0&&i===j.Hourly?M/r:0;return{color:t.toUnitRGBA(e),visualization:b.Gradient,bandsEnabled:s>0,bandSize:s}}get _discreteVisualizationParameters(){return{color:t.toUnitRGBA(this.discreteOptions.color),visualization:b.Gradient,bandsEnabled:!1,bandSize:0}}get _forcePreviewDependencies(){const{view:e}=this;if(l(e))return null;const t=e.slicePlane,i=e.allLayerViews.toArray().filter(H),r=i.map((e=>e.layer)).filter(n),s=i.map((e=>e.visible)),o=r.map((e=>e.visible)),a=r.map((e=>e.opacity)),p=r.filter((function(e){return"definitionExpression"in e})).map((e=>e.definitionExpression)),u=i.filter((function(e){return"filter"in e})).map((e=>e.filter));return{slicePlane:t,startDateUTC:this._startDateTimeUTC,endDateUTC:this._endDateTimeUTC,layerViewVisibilities:s,layerVisibilities:o,layerOpacities:a,filters:u,definitionExpressions:p}}get renderView(){const{view:e}=this;if(l(e))return null;const t=e._stage;return l(t)?null:t.renderView}start(){this._running=!0}stop(){this._running=!1}setRunning(e){this._running=e}async getDuration(e,t){const{view:i,renderView:r}=this;if(l(i)||l(r))return 0;const s=i.state.camera.screenToRender(_(e.x,e.y),w()),o=r.readAccumulatedShadow(s),n=this._sampleCount;if(0===n)return 0;return o*n*(this._duration/n)}};function B({renderView:e,parameters:t}){n(e)&&n(t)&&e.setRenderParameters({shadowCastOptions:t})}function H(e){if(e.suspended)return!1;switch(e.type){case"analysis-3d":case"building-scene-3d":case"csv-3d":case"elevation-3d":case"feature-3d":case"geojson-3d":case"graphics-3d":case"integrated-mesh-3d":case"ogc-feature-3d":case"route-3d":case"scene-layer-3d":case"scene-layer-graphics-3d":case"stream-3d":case"wms-3d":return!0;case"base-dynamic-3d":case"imagery-3d":case"imagery-tile-3d":case"map-image-3d":case"point-cloud-3d":case"tile-3d":case"vector-tile-3d":case"voxel-3d":case"wfs-3d":case"wmts-3d":default:return!1;case"group":return e.layerViews.toArray().some((e=>H(e)))}}e([g()],G.prototype,"state",null),e([g()],G.prototype,"view",void 0),e([g()],G.prototype,"tooltip",void 0),e([g({nonNullable:!0})],G.prototype,"date",null),e([g({nonNullable:!0})],G.prototype,"utcOffset",null),e([g({nonNullable:!0})],G.prototype,"startTimeOfDay",void 0),e([g({nonNullable:!0})],G.prototype,"endTimeOfDay",void 0),e([g({nonNullable:!0})],G.prototype,"visualizationType",void 0),e([g({type:S,nonNullable:!0})],G.prototype,"thresholdOptions",void 0),e([g({type:z,nonNullable:!0})],G.prototype,"durationOptions",void 0),e([g({type:V,nonNullable:!0})],G.prototype,"discreteOptions",void 0),e([g()],G.prototype,"_running",void 0),e([g()],G.prototype,"_handles",void 0),e([g()],G.prototype,"_stopPreviewingTask",void 0),e([g()],G.prototype,"_forcePreview",void 0),e([g()],G.prototype,"_autoRestoreForcePreviewEnabled",void 0),e([g()],G.prototype,"_previewing",null),e([g()],G.prototype,"_utcOffset",void 0),e([g()],G.prototype,"_utcOffsetAuto",null),e([g()],G.prototype,"_dateUTCOffset",null),e([g()],G.prototype,"_startDateTimeUTC",null),e([g()],G.prototype,"_endDateTimeUTC",null),e([g()],G.prototype,"_referencePosition",null),e([g()],G.prototype,"_interval",null),e([g()],G.prototype,"_sampleCount",null),e([g()],G.prototype,"_duration",null),e([g()],G.prototype,"_lightDirections",null),e([g()],G.prototype,"_tooltipEnabled",null),e([g()],G.prototype,"_visualizationParameters",null),e([g()],G.prototype,"_thresholdVisualizationParameters",null),e([g()],G.prototype,"_durationVisualizationParameters",null),e([g()],G.prototype,"_discreteVisualizationParameters",null),e([g()],G.prototype,"_forcePreviewDependencies",null),e([g()],G.prototype,"renderView",null),G=e([T("esri.widgets.ShadowCast.ShadowCastViewModel")],G);const L=G;export{L as default};
|