@arcgis/core 4.28.0-next.20230919 → 4.28.0-next.20230921
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/Color.js +1 -1
- package/WebScene.js +1 -1
- package/arcade/ArcadeDate.js +1 -1
- package/arcade/executionError.js +1 -1
- package/arcade/featureset/support/errorsupport.js +1 -1
- package/assets/esri/core/workers/RemoteClient.js +1 -1
- package/assets/esri/core/workers/chunks/06621efb2573fad23b45.js +1 -0
- package/assets/esri/core/workers/chunks/072b4e041b8630c513a0.js +1 -0
- package/assets/esri/core/workers/chunks/101f776316a85b708927.js +1 -0
- package/assets/esri/core/workers/chunks/107546ef77a45d31c7ac.js +1 -0
- package/assets/esri/core/workers/chunks/10fd951bd296b2beeeba.js +1 -0
- package/assets/esri/core/workers/chunks/114269dda1d296893908.js +1 -0
- package/assets/esri/core/workers/chunks/126df6237fc80608344e.js +1 -0
- package/assets/esri/core/workers/chunks/134524cf6b1ebf208338.js +1 -0
- package/assets/esri/core/workers/chunks/17a36704e63ca1b34c5d.js +1 -0
- package/assets/esri/core/workers/chunks/1c83f47d446f2bca1721.js +1 -0
- package/assets/esri/core/workers/chunks/{09d395a9786607294689.js → 1c8469fbde39d85ee622.js} +1 -1
- package/assets/esri/core/workers/chunks/1cbaba30f55f00f7498b.js +1 -0
- package/assets/esri/core/workers/chunks/21a9c8aa2a9e9990df41.js +1 -0
- package/assets/esri/core/workers/chunks/{506874f562ce11f8914a.js → 243a4eed107d363dfad8.js} +1 -1
- package/assets/esri/core/workers/chunks/24629402c647ef6b5f6b.js +1 -0
- package/assets/esri/core/workers/chunks/2a1c1be9c202462cf54d.js +1 -0
- package/assets/esri/core/workers/chunks/2bb69d76a13564e8e455.js +1 -0
- package/assets/esri/core/workers/chunks/2d0d03cbea83c868edba.js +1 -0
- package/assets/esri/core/workers/chunks/2e130cb2f1038055c07b.js +1 -0
- package/assets/esri/core/workers/chunks/32ba4eba730e9232d964.js +1 -0
- package/assets/esri/core/workers/chunks/{b428fcb53ecc82b49e66.js → 332689bf60d246485993.js} +1 -1
- package/assets/esri/core/workers/chunks/3619e04cbb6691549014.js +1 -0
- package/assets/esri/core/workers/chunks/37116fb4c68cf3c3890a.js +1 -0
- package/assets/esri/core/workers/chunks/{3a7ad0d24264e2bc2e87.js → 3ca759f72d3bb29e9ea9.js} +22 -22
- package/assets/esri/core/workers/chunks/3dbfb4f370a874393822.js +1 -0
- package/assets/esri/core/workers/chunks/3f4e9b1663ec521bfe00.js +1 -0
- package/assets/esri/core/workers/chunks/406db5c90271a3a203d4.js +1 -0
- package/assets/esri/core/workers/chunks/4339ce8aaf87fabb80cc.js +1 -0
- package/assets/esri/core/workers/chunks/4369a6c1e0a82ab4db6a.js +1 -0
- package/assets/esri/core/workers/chunks/43ba2bacd0f7d19915f7.js +1 -0
- package/assets/esri/core/workers/chunks/44b8e75593b7df1843e1.js +1 -0
- package/assets/esri/core/workers/chunks/467a821d05df8ec0dc1c.js +1 -0
- package/assets/esri/core/workers/chunks/47be4c75dd6372b96fe4.js +1 -0
- package/assets/esri/core/workers/chunks/53097659f31750c03a6d.js +1 -0
- package/assets/esri/core/workers/chunks/{c1141056581af072aee9.js → 580039dd491854ca325c.js} +1 -1
- package/assets/esri/core/workers/chunks/59c00d6fba0fd1c03d01.js +1 -0
- package/assets/esri/core/workers/chunks/5a5720caa64a46daadf9.js +1 -0
- package/assets/esri/core/workers/chunks/5edb99b58549cd66b394.js +1 -0
- package/assets/esri/core/workers/chunks/6203ddf6caad3d356327.js +1 -0
- package/assets/esri/core/workers/chunks/652749dc847fcb887234.js +1 -0
- package/assets/esri/core/workers/chunks/6c495077cc79e1898927.js +1 -0
- package/assets/esri/core/workers/chunks/{e5c3beebd507e1dda35f.js → 749fc49246093d693227.js} +1 -1
- package/assets/esri/core/workers/chunks/74d3ecb1a06d9f81e2c5.js +1 -0
- package/assets/esri/core/workers/chunks/77c15b1c2729c780f75a.js +1 -0
- package/assets/esri/core/workers/chunks/7ea33aa455c5143affb1.js +1 -0
- package/assets/esri/core/workers/chunks/7ed70c96fbfe00792e7c.js +1 -0
- package/assets/esri/core/workers/chunks/8ab832468300cc4feb5a.js +1 -0
- package/assets/esri/core/workers/chunks/90771b0de3e520a1df9a.js +1 -0
- package/assets/esri/core/workers/chunks/94188fe381239d48a975.js +1 -0
- package/assets/esri/core/workers/chunks/a277c980ba8704939688.js +1 -0
- package/assets/esri/core/workers/chunks/b1746c022fe6edaeda55.js +1 -0
- package/assets/esri/core/workers/chunks/b449d6bd5851187d419f.js +1 -0
- package/assets/esri/core/workers/chunks/bbc0dcd316c5598bc9ad.js +1 -0
- package/assets/esri/core/workers/chunks/bc1dc6383e60e7e61d50.js +1 -0
- package/assets/esri/core/workers/chunks/bc6323bdc98013da6fe5.js +1 -0
- package/assets/esri/core/workers/chunks/bde89b2684b6185992ef.js +1 -0
- package/assets/esri/core/workers/chunks/c4bb67150ccd01ea6014.js +1 -0
- package/assets/esri/core/workers/chunks/{727548fffd4e270617d3.js → c6ea5aac232d1eca04dd.js} +1 -1
- package/assets/esri/core/workers/chunks/c8438c2d9ac48afe4033.js +1 -0
- package/assets/esri/core/workers/chunks/c9dfb145f0c1d93e0fbd.js +1 -0
- package/assets/esri/core/workers/chunks/cad260881653567bc8f9.js +1 -0
- package/assets/esri/core/workers/chunks/cec607d0138351a4952e.js +1 -0
- package/assets/esri/core/workers/chunks/d24afa6d8fd0061d9f00.js +1 -0
- package/assets/esri/core/workers/chunks/{f147269d85adfb4588ed.js → d9061beaa43065316062.js} +1 -1
- package/assets/esri/core/workers/chunks/dd7508d4016715371e0c.js +1 -0
- package/assets/esri/core/workers/chunks/dff1c3c38dda2bd1a9d6.js +1 -0
- package/assets/esri/core/workers/chunks/e55f7fc7eff0074ce0fc.js +1 -0
- package/assets/esri/core/workers/chunks/eb01f4cdb9b918cc61e7.js +1 -0
- package/assets/esri/core/workers/chunks/ec8258c9dc1491e97fc8.js +1 -0
- package/assets/esri/core/workers/chunks/ed1fbc1bc8d50453e2f5.js +1 -0
- package/assets/esri/core/workers/chunks/eeac53da496de4cd4182.js +1 -0
- package/assets/esri/core/workers/chunks/eef27d305023034084a4.js +1 -0
- package/assets/esri/core/workers/chunks/f38c54ada9e7012a2960.js +1 -0
- package/assets/esri/core/workers/chunks/f508ccfde6425dabe9ac.js +1 -0
- package/assets/esri/core/workers/chunks/f5e0ff5292b9fd18fc92.js +1 -0
- package/assets/esri/core/workers/chunks/f5eb8b5021620be7538e.js +1 -0
- package/assets/esri/images/portal/onlinemedialayer16.png +0 -0
- package/assets/esri/themes/base/widgets/_FeatureForm.scss +2 -1
- package/assets/esri/themes/dark/main.css +1 -1
- package/assets/esri/themes/light/main.css +1 -1
- package/assets/esri/themes/light/view.css +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_ar.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_bg.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_bs.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_ca.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_cs.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_da.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_de.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_el.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_en.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_es.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_et.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_fi.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_fr.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_he.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_hr.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_hu.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_id.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_it.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_ja.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_ko.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_lt.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_lv.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_nb.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_nl.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_pl.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_pt-BR.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_pt-PT.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_ro.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_ru.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_sk.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_sl.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_sr.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_sv.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_th.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_tr.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_uk.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_vi.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_zh-CN.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_zh-HK.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_zh-TW.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_ar.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_bg.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_bs.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_ca.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_cs.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_da.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_de.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_el.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_en.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_es.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_et.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_fi.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_fr.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_he.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_hr.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_hu.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_id.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_it.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_ja.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_ko.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_lt.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_lv.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_nb.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_nl.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_pl.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_pt-BR.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_pt-PT.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_ro.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_ru.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_sk.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_sl.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_sr.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_sv.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_th.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_tr.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_uk.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_vi.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_zh-CN.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_zh-HK.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_zh-TW.json +1 -1
- package/chunks/LaserlinePath.glsl.js +5 -1
- package/core/HandleOwner.js +1 -1
- package/core/MemCache.js +1 -1
- package/core/date.js +5 -0
- package/core/sql.js +1 -1
- package/core/string.js +1 -1
- package/interfaces.d.ts +60 -43
- package/intl/date.js +1 -1
- package/layers/GeoJSONLayer.js +1 -1
- package/layers/ImageryLayer.js +1 -1
- package/layers/VoxelWasmPerSceneView.js +1 -1
- package/layers/WFSLayer.js +1 -1
- package/layers/graphics/sources/GeoJSONSource.js +1 -1
- package/layers/graphics/sources/MemorySource.js +1 -1
- package/layers/graphics/sources/WFSSource.js +1 -1
- package/layers/graphics/sources/WFSSourceWorker.js +1 -1
- package/layers/graphics/sources/csv/csv.js +1 -1
- package/layers/graphics/sources/geojson/GeoJSONSourceWorker.js +1 -1
- package/layers/graphics/sources/geojson/geojson.js +1 -1
- package/layers/graphics/sources/support/CSVSourceWorker.js +1 -1
- package/layers/graphics/sources/support/MemorySourceWorker.js +1 -1
- package/{views/interactive/tooltip/tooltipInfoUnion.js → layers/graphics/sources/support/QueryEngineBuildLayer.js} +1 -0
- package/layers/graphics/sources/support/sourceUtils.js +1 -1
- package/layers/mixins/SceneService.js +1 -1
- package/layers/ogc/wfsUtils.js +1 -1
- package/layers/save/utils.js +1 -1
- package/layers/support/editableLayers.js +1 -1
- package/layers/support/fieldUtils.js +1 -1
- package/layers/support/labelFormatUtils.js +1 -1
- package/layers/support/layersCreator.js +1 -1
- package/layers/support/rasterFunctionUtils.js +1 -1
- package/layers/support/rasterFunctions/creators/createBandIndexFunctions.js +1 -1
- package/layers/support/rasterFunctions/creators/createDataManagementFunctions.js +1 -1
- package/layers/support/rasterFunctions/creators/createLocalFunctions.js +1 -1
- package/networks/support/utils.js +1 -1
- package/package.json +1 -1
- package/portal/PortalItem.js +1 -1
- package/portal/support/layersLoader.js +1 -1
- package/rest/geometryService/cut.js +1 -1
- package/rest/query/operations/query.js +1 -1
- package/rest/versionManagement/deleteVersion.js +1 -1
- package/rest/versionManagement/gdbVersion/alterVersion.js +1 -1
- package/rest/versionManagement/gdbVersion/post.js +1 -1
- package/rest/versionManagement/gdbVersion/reconcile.js +1 -1
- package/rest/versionManagement/gdbVersion/serverVersionUtils.js +5 -0
- package/support/revision.js +1 -1
- package/time/timeZoneUtils.js +1 -1
- package/views/2d/engine/Stage.js +1 -1
- package/views/2d/engine/webgl/mesh/factories/WGLMeshFactory.js +1 -1
- package/views/2d/layers/features/controllers/FeatureController2D.js +1 -1
- package/views/2d/layers/features/sources/BaseFeatureSource.js +1 -1
- package/views/2d/layers/features/sources/DataTileSource.js +1 -1
- package/views/2d/layers/features/sources/StreamSource.js +1 -1
- package/views/2d/layers/features/support/whereUtils.js +1 -1
- package/views/3d/analysis/AreaMeasurement/support/AreaMeasurementVisualization.js +1 -1
- package/views/3d/analysis/Dimension/LengthDimensionSubTool.js +1 -1
- package/views/3d/analysis/Dimension/lengthDimensionConstraintUtils.js +1 -1
- package/views/3d/analysis/Slice/RotateManipulator.js +1 -1
- package/views/3d/environment/EnvironmentRenderer.js +1 -1
- package/views/3d/environment/LocalAtmosphere.js +1 -1
- package/views/3d/externalRenderers/StageRenderer.js +1 -1
- package/views/3d/interactive/manipulatorUtils.js +1 -1
- package/views/3d/interactive/measurementTools/areaMeasurement3D/AreaMeasurement3DTool.js +1 -1
- package/views/3d/interactive/visualElements/MeasurementAreaVisualElement.js +1 -1
- package/views/3d/interactive/visualElements/OutlineVisualElement.js +1 -1
- package/views/3d/interactive/visualElements/PointVisualElement.js +1 -1
- package/views/3d/interactive/visualElements/RightAngleQuadVisualElement.js +1 -1
- package/views/3d/layers/MediaLayerView3D.js +1 -1
- package/views/3d/layers/SceneLayerGraphicsView3D.js +1 -1
- package/views/3d/layers/graphics/Deconflictor.js +1 -1
- package/views/3d/layers/graphics/ElevationAligners.js +1 -1
- package/views/3d/layers/graphics/Graphics3DExtrudeSymbolLayer.js +1 -1
- package/views/3d/layers/graphics/Graphics3DLineCalloutSymbolLayer.js +1 -1
- package/views/3d/layers/graphics/Graphics3DMeshFillSymbolLayer.js +1 -1
- package/views/3d/layers/graphics/Graphics3DObjectSymbolLayer.js +1 -1
- package/views/3d/layers/graphics/objectResourceUtils.js +1 -1
- package/views/3d/layers/graphics/polygonUtils.js +1 -1
- package/views/3d/layers/graphics/wosrLoader.js +1 -1
- package/views/3d/layers/i3s/I3SUtil.js +1 -1
- package/views/3d/layers/i3s/PointRenderer.js +1 -1
- package/views/3d/layers/support/HeatmapFeatureProcessor.js +1 -1
- package/views/3d/layers/support/overlayImageUtils.js +1 -1
- package/views/3d/layers/support/patternUtils.js +1 -1
- package/views/3d/support/LaserLineRenderer.js +1 -1
- package/views/3d/support/StreamDataLoader.js +1 -1
- package/views/3d/support/dito.js +1 -1
- package/views/3d/support/engineContent/line.js +1 -1
- package/views/3d/support/pointsOfInterest/CenterOnSurface.js +1 -1
- package/views/3d/support/pointsOfInterest/Focus.js +1 -1
- package/views/3d/terrain/OverlayRenderer.js +1 -1
- package/views/3d/terrain/TerrainRenderer.js +1 -1
- package/views/3d/terrain/TileRenderer.js +1 -1
- package/views/3d/webgl-engine/collections/Component/ComponentIntersectionData.js +1 -1
- package/views/3d/webgl-engine/collections/Component/IntersectionGeometry.js +1 -1
- package/views/3d/webgl-engine/core/FBOCache.js +1 -1
- package/views/3d/webgl-engine/core/renderPasses/RenderPassManager.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/attributes/InstancedDoublePrecision.glsl.js +6 -6
- package/views/3d/webgl-engine/core/shaderLibrary/hud/AlignPixel.glsl.js +10 -12
- package/views/3d/webgl-engine/core/shaderLibrary/hud/HUDVisibility.glsl.js +8 -21
- package/views/3d/webgl-engine/effects/RenderPluginManager.js +1 -1
- package/views/3d/webgl-engine/effects/highlight/Highlight.js +1 -1
- package/views/3d/webgl-engine/effects/highlight/ShadowHighlight.js +1 -1
- package/views/3d/webgl-engine/effects/smaa/SMAA.js +1 -1
- package/views/3d/webgl-engine/effects/ssao/SSAO.js +1 -1
- package/views/3d/webgl-engine/lib/Attribute.js +1 -1
- package/views/3d/webgl-engine/lib/BoundingInfo.js +1 -1
- package/views/3d/webgl-engine/lib/Camera.js +1 -1
- package/views/3d/webgl-engine/lib/DrapedHeatmapRenderer.js +1 -1
- package/views/3d/webgl-engine/lib/Geometry.js +1 -1
- package/views/3d/webgl-engine/lib/GeometryUtil.js +1 -1
- package/views/3d/webgl-engine/lib/GridLocalOriginFactory.js +1 -1
- package/views/3d/webgl-engine/lib/PathGeometryData.js +1 -1
- package/views/3d/webgl-engine/lib/RenderGeometry.js +1 -1
- package/views/3d/webgl-engine/lib/Renderer.js +1 -1
- package/views/3d/webgl-engine/lib/SortedRenderGeometryRenderer.js +1 -1
- package/views/3d/webgl-engine/lib/TextTextureAtlas.js +1 -1
- package/views/3d/webgl-engine/lib/edgeRendering/EdgeView.js +1 -1
- package/views/3d/webgl-engine/lib/geometryDataUtils.js +1 -1
- package/views/3d/webgl-engine/lib/lodRendering/LodRenderer.js +1 -1
- package/views/3d/webgl-engine/lib/lodRendering/LodResources.js +1 -1
- package/views/3d/webgl-engine/materials/DefaultBufferWriter.js +1 -1
- package/views/3d/webgl-engine/materials/HUDMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/HeatmapDensityMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/ImageMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/LineCalloutMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/LineMarkerMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/MeasurementArrowMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/NativeLineMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/PatternMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/RibbonLineMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/ShadedColorMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/internal/MaterialUtil.js +1 -1
- package/views/3d/webgl-engine/materials/internal/bufferWriterUtils.js +1 -1
- package/views/3d/webgl-engine/materials/renderers/MergedRenderer.js +1 -1
- package/views/View.js +1 -1
- package/views/draw/DrawGraphicTool.js +1 -1
- package/views/draw/support/HighlightHelper.js +1 -1
- package/views/draw/support/Reshape.js +1 -1
- package/views/draw/support/layerUtils.js +1 -1
- package/views/interactive/SegmentLabels.js +1 -1
- package/views/interactive/keybindings.js +1 -1
- package/views/interactive/tooltip/SketchTooltipInfo.js +1 -1
- package/views/interactive/tooltip/TooltipContentWithHelpMessage.js +1 -1
- package/views/interactive/tooltip/TooltipEditableField.js +1 -1
- package/views/interactive/tooltip/TranslateTooltipInfos.js +1 -1
- package/views/interactive/tooltip/content/Fields.js +5 -0
- package/views/interactive/tooltip/content/TooltipContentDrawPoint.js +1 -1
- package/views/interactive/tooltip/content/TooltipContentDrawPolygon.js +1 -1
- package/views/interactive/tooltip/content/TooltipContentDrawPolyline.js +1 -1
- package/views/layers/FeatureLayerView.js +1 -1
- package/views/webgl/FramebufferObject.js +1 -1
- package/webdoc/saveAPIKeyUtils.js +5 -0
- package/webdoc/webdocSaveUtils.js +1 -1
- package/widgets/BasemapGallery.js +1 -1
- package/widgets/BasemapLayerList.js +1 -1
- package/widgets/Bookmarks.js +1 -1
- package/widgets/Editor/CreateFeaturesWorkflow.js +1 -1
- package/widgets/Editor/EditorViewModel.js +1 -1
- package/widgets/Editor/UpdateRecordWorkflow.js +1 -1
- package/widgets/Editor/UpdateWorkflow.js +1 -1
- package/widgets/Expand.js +1 -1
- package/widgets/Feature/FeatureRelationship.js +1 -1
- package/widgets/Feature/support/featureUtils.js +1 -1
- package/widgets/FeatureForm/EditableInput.js +1 -1
- package/widgets/FeatureForm/FeatureFormViewModel.js +1 -1
- package/widgets/FeatureForm/RelationshipInput.js +1 -1
- package/widgets/FeatureForm.js +1 -1
- package/widgets/FeatureTemplates/FeatureTemplatesViewModel.js +1 -1
- package/widgets/Fullscreen.js +1 -1
- package/widgets/Legend/support/ActiveLayerInfo.js +1 -1
- package/widgets/Search.js +1 -1
- package/widgets/Swipe.js +1 -1
- package/widgets/UtilityNetworkTrace/UtilityNetworkTraceViewModel.js +1 -1
- package/widgets/UtilityNetworkTrace/support/ResultAreaHandler.js +1 -1
- package/widgets/UtilityNetworkTrace/support/UtilityHelper.js +1 -1
- package/widgets/UtilityNetworkTrace.js +1 -1
- package/widgets/support/SketchTooltipControls.js +1 -1
- package/widgets/support/globalCss.js +1 -1
- package/assets/esri/core/workers/chunks/0274b84548cb048562e4.js +0 -1
- package/assets/esri/core/workers/chunks/034accc7cab6c88a3b31.js +0 -1
- package/assets/esri/core/workers/chunks/0839b45999fcb556e460.js +0 -1
- package/assets/esri/core/workers/chunks/09589852b129bfb5624f.js +0 -1
- package/assets/esri/core/workers/chunks/132e9e6147304ffd128d.js +0 -1
- package/assets/esri/core/workers/chunks/1790ca4193d730f5f206.js +0 -1
- package/assets/esri/core/workers/chunks/1a449168d30a688e6128.js +0 -1
- package/assets/esri/core/workers/chunks/1c94624fd001c803a814.js +0 -1
- package/assets/esri/core/workers/chunks/25ab3bec45de900be36e.js +0 -1
- package/assets/esri/core/workers/chunks/273167b2dd46e58b8739.js +0 -1
- package/assets/esri/core/workers/chunks/2c5eb8aaad696fa16744.js +0 -1
- package/assets/esri/core/workers/chunks/353bad8530710a284592.js +0 -1
- package/assets/esri/core/workers/chunks/357d452b8522185cc433.js +0 -1
- package/assets/esri/core/workers/chunks/3c2be3d204e6bf87266a.js +0 -1
- package/assets/esri/core/workers/chunks/3c2c64832fb498bbaa83.js +0 -1
- package/assets/esri/core/workers/chunks/3c4d59018ce8502c65e7.js +0 -1
- package/assets/esri/core/workers/chunks/43eff89599f36d83924b.js +0 -1
- package/assets/esri/core/workers/chunks/4632ada4af99cab70a61.js +0 -1
- package/assets/esri/core/workers/chunks/481eab7879ed5d8a1f67.js +0 -1
- package/assets/esri/core/workers/chunks/4b3a5cc435435c81e6a5.js +0 -1
- package/assets/esri/core/workers/chunks/4f34fd8c2bb769541e9c.js +0 -1
- package/assets/esri/core/workers/chunks/4f5a0bc7411c0db33662.js +0 -1
- package/assets/esri/core/workers/chunks/56a4cea67cc579bf7547.js +0 -1
- package/assets/esri/core/workers/chunks/56afd89d08c874f620a1.js +0 -1
- package/assets/esri/core/workers/chunks/5b08d578521562b166e3.js +0 -1
- package/assets/esri/core/workers/chunks/5f938d6da9fd3f3edc74.js +0 -1
- package/assets/esri/core/workers/chunks/6108d72faf48a592c8ba.js +0 -1
- package/assets/esri/core/workers/chunks/656a8be4ce1bec721366.js +0 -1
- package/assets/esri/core/workers/chunks/7531ebc60e9ae61220e0.js +0 -1
- package/assets/esri/core/workers/chunks/77923afde29ae1ff10ca.js +0 -1
- package/assets/esri/core/workers/chunks/79683324be49aab79dd8.js +0 -1
- package/assets/esri/core/workers/chunks/7cdb4416afd5922cf5f3.js +0 -1
- package/assets/esri/core/workers/chunks/7e87bc83a0a2715e3016.js +0 -1
- package/assets/esri/core/workers/chunks/7f680cf24dd97d61bcd2.js +0 -1
- package/assets/esri/core/workers/chunks/7f797fed73cf7b48a686.js +0 -1
- package/assets/esri/core/workers/chunks/861609ebd3a77b787b0f.js +0 -1
- package/assets/esri/core/workers/chunks/869c3927f1e246cd1e42.js +0 -1
- package/assets/esri/core/workers/chunks/95371c0f5464f5daae9f.js +0 -1
- package/assets/esri/core/workers/chunks/962b99fd273709c726d3.js +0 -1
- package/assets/esri/core/workers/chunks/98fbcbb2115376d7ff62.js +0 -1
- package/assets/esri/core/workers/chunks/9abcd1d11bfd92f872ab.js +0 -1
- package/assets/esri/core/workers/chunks/9b54b5bdb6367c36f6e9.js +0 -1
- package/assets/esri/core/workers/chunks/9dab9f6c07ececa7f851.js +0 -1
- package/assets/esri/core/workers/chunks/9ff6ce486898713af7e2.js +0 -1
- package/assets/esri/core/workers/chunks/a98a435d4dbea73f7517.js +0 -1
- package/assets/esri/core/workers/chunks/b05bb6e784e5453696be.js +0 -1
- package/assets/esri/core/workers/chunks/b51d0ec283f61f638a48.js +0 -1
- package/assets/esri/core/workers/chunks/b5ee6c0c07fa50410370.js +0 -1
- package/assets/esri/core/workers/chunks/b9cf8f02974aeb3ce208.js +0 -1
- package/assets/esri/core/workers/chunks/bdf13091bd0e1ab0db7e.js +0 -1
- package/assets/esri/core/workers/chunks/bef1a1218a94ab6e2b51.js +0 -1
- package/assets/esri/core/workers/chunks/c22c2b15fe5f2c97a2ae.js +0 -1
- package/assets/esri/core/workers/chunks/c880d2f0ff06b3bf731f.js +0 -1
- package/assets/esri/core/workers/chunks/c88869d2a647c22dc3e6.js +0 -1
- package/assets/esri/core/workers/chunks/cc96be71fee49f07dcd4.js +0 -1
- package/assets/esri/core/workers/chunks/e4237360eef474d1f0ac.js +0 -1
- package/assets/esri/core/workers/chunks/e54ae2a4281dd58e0707.js +0 -1
- package/assets/esri/core/workers/chunks/e977e721f6f50e3c5f13.js +0 -1
- package/assets/esri/core/workers/chunks/ed31cf6688c0f7dac1f9.js +0 -1
- package/assets/esri/core/workers/chunks/f07a0ea10428adecea1a.js +0 -1
- package/assets/esri/core/workers/chunks/f1eab5c67ed808c18f86.js +0 -1
- package/assets/esri/core/workers/chunks/f2e7142a8db164940544.js +0 -1
- package/assets/esri/core/workers/chunks/f939b4166f76975f5da0.js +0 -1
- package/assets/esri/core/workers/chunks/ff4f4107a866e4a68386.js +0 -1
- package/layers/ogc/dateUtils.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.28/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{_ as e}from"../../../chunks/tslib.es6.js";import t from"../../../Color.js";import"../../../intl.js";import{addTokenParameter as l}from"../../../kernel.js";import s from"../../../request.js";import"../../../symbols.js";import r from"../../../core/Accessor.js";import{isSome as i}from"../../../core/arrayUtils.js";import n from"../../../core/Collection.js";import{JSONMap as a}from"../../../core/jsonMap.js";import o from"../../../core/Logger.js";import{debounce as u}from"../../../core/promiseUtils.js";import{on as c,watch as d,whenOnce as y,initial as h}from"../../../core/reactiveUtils.js";import{px2pt as m}from"../../../core/screenUtils.js";import{addQueryParameters as p}from"../../../core/urlUtils.js";import{property as f}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/accessorSupport/ensureType.js";import"../../../core/has.js";import{subclass as g}from"../../../core/accessorSupport/decorators/subclass.js";import{OriginId as b}from"../../../core/accessorSupport/PropertyOrigin.js";import{EffectView as S}from"../../../layers/effects/EffectView.js";import{effectFunctionsFromJSON as _}from"../../../layers/effects/jsonUtils.js";import{ExportImageParameters as L}from"../../../layers/support/ExportImageParameters.js";import{isDateField as w}from"../../../layers/support/fieldUtils.js";import{isFeatureLayer as v}from"../../../layers/support/layerUtils.js";import{getPixelValueRange as E}from"../../../layers/support/rasterFormats/pixelRangeUtils.js";import{fromJSON as C}from"../../../renderers/support/jsonUtils.js";import{isSupportedRenderer3D as I}from"../../../renderers/support/rendererConversion.js";import R from"../../../renderers/visualVariables/support/SizeVariableLegendOptions.js";import{applyCIMSymbolColor as F}from"../../../symbols/support/cimSymbolUtils.js";import{SymbolSizeDefaults as V}from"../../../symbols/support/previewUtils.js";import{renderSymbol as T}from"../../../symbols/support/renderUtils.js";import{renderColorRampPreviewHTML as z,renderDotDensityPreviewHTML as x,renderPieChartPreviewHTML as j,renderPreviewHTML as D}from"../../../symbols/support/symbolUtils.js";import{isVolumetricSymbol as P}from"../../../symbols/support/utils.js";import{getClusterSizeVariable as O}from"./clusterUtils.js";import{getColorFromPointCloudStops as A,getRampStopsForPointCloud as M,getStrectchRampStops as U,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 H,realWorldMaxSize as $,realWorldMinSize as W}from"./sizeRampUtils.js";import{specialCharsLessThan as G,specialCharsGreaterThan as J,getSymbolForFlowRenderer as Q,isRasterBandStatistics as K,getMedianColor as X,rgbImgSource as Y}from"./utils.js";import{formatNumberLabel as Z}from"../../smartMapping/support/utils.js";import ee from"../../../symbols/SimpleMarkerSymbol.js";import te from"../../../symbols/SimpleFillSymbol.js";import{fetchMessageBundle as le}from"../../../intl/messages.js";import{substitute as se}from"../../../intl/substitute.js";const re="https://utility.arcgis.com/sharing/tools/legend",ie="esri.layers.ImageryLayer",ne="esri.layers.ImageryTileLayer",ae="esri.layers.WCSLayer",oe=/^\s*(return\s+)?\$view\.scale\s*(;)?\s*$/i,ue=new a({esriGeometryPoint:"point",esriGeometryMultipoint:"multipoint",esriGeometryPolyline:"polyline",esriGeometryPolygon:"polygon",esriGeometryMultiPatch:"multipatch"}),ce=new ee({size:6,outline:{color:[128,128,128,.5],width:.5}}),de=new te({style:"solid"});function ye(e){return"flow"===e.type}function he(e){return"vector-field"===e.type}function me(e){return"raster-colormap"===e.type}function pe(e){return"raster-stretch"===e.type}function fe(e){return"raster-shaded-relief"===e.type}function ge(e){return"esri.renderers.SimpleRenderer"===e.declaredClass}function be(e){return"esri.renderers.ClassBreaksRenderer"===e.declaredClass}function Se(e){return"esri.renderers.UniqueValueRenderer"===e.declaredClass}function _e(e){return"esri.renderers.HeatmapRenderer"===e.declaredClass}function Le(e){return ve(e)||Ee(e)||Ce(e)||we(e)}function we(e){return"esri.renderers.PointCloudRGBRenderer"===e.declaredClass}function ve(e){return"esri.renderers.PointCloudClassBreaksRenderer"===e.declaredClass}function Ee(e){return"esri.renderers.PointCloudStretchRenderer"===e.declaredClass}function Ce(e){return"esri.renderers.PointCloudUniqueValueRenderer"===e.declaredClass}function Ie(e){return"esri.renderers.DotDensityRenderer"===e.declaredClass}function Re(e){return"esri.renderers.PieChartRenderer"===e.declaredClass}function Fe(e,t){return ge(e)||be(e)||Se(e)||_e(e)||Ie(e)||Re(e)?"2d"===t.type||I(e):pe(e)||me(e)||fe(e)||ve(e)||Ee(e)||Ce(e)||he(e)||ye(e)}function Ve(e){return"esri.layers.BuildingSceneLayer"===e.declaredClass}function Te(e){return"esri.layers.SubtypeGroupLayer"===e.declaredClass}function ze(e){return"esri.layers.VoxelLayer"===e.declaredClass}function xe(e){return"esri.layers.WMSLayer"===e.declaredClass}function je(e){return"esri.layers.WMTSLayer"===e.declaredClass}function De(e){return"esri.layers.MapImageLayer"===e.declaredClass}function Pe(e){return"esri.layers.TileLayer"===e.declaredClass}function Oe(e){return e.declaredClass===ie}function Ae(e){return e.declaredClass===ne}function Me(e){return e.declaredClass===ae}function Ue(e){return"stretch-ramp"===e.type}function Be(e){const t="authoringInfo"in e?e?.authoringInfo:null;return"univariate-color-size"===t?.type}function ke(e){const t="authoringInfo"in e?e?.authoringInfo:null;return"univariate-color-size"===t?.type&&"above-and-below"===t?.univariateTheme}function Ne(e){return"sublayers"in e}async function qe(e,t){const l=await le("esri/widgets/Legend/t9n/Legend");return"previewTemplateAriaLabel"!==e||t||(e="previewAriaLabel"),se(l[e],{label:t})}const He=new ee({style:"path",path:"M10,5 L5,0 0,5 M5,0 L5,15",size:15,outline:{width:1,color:[85,85,85,1]}});let $e={},We=class extends r{constructor(e){super(e),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.addHandles([c((()=>this.children),"change",(t=>{const{added:l,removed:s}=t;l.forEach((t=>{const l=`activeLayerInfo-ready-watcher-${t.layer.uid}`;this.addHandles(d((()=>t.ready),e,h),l)})),s.forEach((e=>this.removeHandles(e.layer.uid))),e()}))]),this.keepCacheOnDestroy||($e={})}destroy(){this._webStyleSymbolCache=null,this._dotDensityUrlCache=null,this._scaleDrivenSizeVariable=null,this.keepCacheOnDestroy||($e=null)}get effectList(){const e=this.layer;let t=null;return"effect"in e&&e.effect&&(t=new S,t.effect=e.effect,t.endTransitions(),t.scale=this.scale),t}get opacity(){const e=this.layer.opacity,t=this.parent?.opacity,l=this.layer.parent,s=l&&"uid"in l?this._getParentLayerOpacity(l):null;return null!=t?t*e:null!=s?s*e:e}get ready(){return null===this.layer||(this.children.length>0?this._isGroupActive():this.legendElements.length>0)}get scale(){return this.view?.scale??0}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){if("cluster"===e.featureReduction.type)return!0;if("binning"===e.featureReduction.type&&"renderer"in e.featureReduction&&e.featureReduction.renderer)return this._isRendererScaleDriven(e.featureReduction.renderer)}return"renderer"in e&&e.renderer?this._isRendererScaleDriven(e.renderer):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(v(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=ue.read(t.geometryType);return s?this._getRendererLegendElements(s,{title:e.name,geometryType:r}):(o.getLogger(this).warn("drawingInfo not available!"),null)}return null}));try{const e=[],l=await Promise.allSettled(t);for(const t of l)if("fulfilled"===t.status)for(const l of t.value??[])e.push(l);this.legendElements=e,this.notifyChange("ready")}catch(l){o.getLogger(this).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){o.getLogger(this).warn("error while building legend for layer!",t)}}async buildLegendElementsForFeatureReduction(e){try{const t=!this.hideLayersNotInCurrentView||await this._isLayerInCurrentView();this.legendElements=t?await this._getLegendElementsForFeatureReduction(e):[],this.notifyChange("ready")}catch(t){o.getLogger(this).warn("error while building legend for layer!",t)}}async buildLegendElementsForTools(){const e=this.layer;if(ze(e))this._constructLegendElementsForVoxellayer();else if(je(e))this._constructLegendElementsForWMTSlayer();else if(xe(e))await this._constructLegendElementsForWMSSublayers();else if(Ve(e))await this._constructLegendElementsForBuildingSceneLayer();else if(De(e)||Pe(e)||Te(e))await this._constructLegendElementsForSublayers();else{this.removeHandles("imageryLayers-watcher");let t="default";if(Oe(e)){const l=e;t=(l?.rasterFunction?.functionName||"default")+"_"+(e.bandIds?.length?e.bandIds.join(""):"###")}await this._getLegendLayers(`${e.uid}-${t}`).then((async t=>{this.legendElements=[],this.notifyChange("ready");const l=t.map((async t=>{if(Oe(e)||Ae(e)){const t=d((()=>["renderingRule"in e&&e.rasterFunction,e.bandIds]),(()=>u((async()=>{$e.default=null,e.renderer?await this.buildLegendElementsForRenderer(e.renderer):await this.buildLegendElementsForTools()}))()));this.addHandles(t,"imageryLayers-watcher")}const l=this._generateSymbolTableElementForLegendLayer(t);l&&l.infos.length&&(Oe(e)&&(l.title=e.title),this.legendElements.push(l)),this.notifyChange("ready")}));await Promise.allSettled(l)})).catch((e=>{o.getLogger(this).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 y((()=>!t.updating));const s=l?"createQuery"in t&&t.createQuery():"createQuery"in e&&e.createQuery();if(!s)return!0;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))}_isRendererScaleDriven(e){if("dot-density"===e.type)return!0;const t="valueExpression"in e?e.valueExpression:null;if(oe.test(t))return!0;const l="visualVariables"in e?e.visualVariables:null;return!!l&&l.some((e=>this._isScaleDrivenSizeVariable(e)))}_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||oe.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&&De(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.removeHandles("voxel-style-watcher"),this.removeHandles("voxel-current-variable");const e=this.layer;this.addHandles(d((()=>e.currentVariableId),(()=>this._constructLegendElementsForVoxellayer())),"voxel-current-variable"),this.addHandles(d((()=>e.getVariableStyles()),(()=>this._constructLegendElementsForVoxellayer())),"voxel-style-watcher");const t=e.getVariableStyle(null),l=[];if(t)if(t.uniqueValues?.length){const e=[];t.uniqueValues.forEach((t=>{t.enabled&&e.push({label:t.label||`${t.value}`,value:t.value,symbol:new te({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?G:J} ${Z(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:z(r.map((e=>e.color)),{ariaLabel:await qe("previewColorRampAriaLabel")})})}const s=e.opacity,r=l.reduce(((e,t)=>[...e,...this._getAllInfos(t)]),[]).filter((e=>!!e?.symbol)).map((e=>this._getSymbolPreview(e,s)));await Promise.allSettled(r),this.legendElements=l,this.notifyChange("ready")}_constructLegendElementsForWMTSlayer(){this.legendElements=[],this.removeHandles("wmts-activeLayer-watcher");const e=this.layer.activeLayer;if(this.addHandles(d((()=>{const{layer:e}=this;return e&&"activeLayer"in e&&e.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.removeHandles("wms-sublayers-watcher");const e=this.layer;let t=null;(e.customParameters||e.customLayerParameters)&&(t={...e.customParameters,...e.customLayerParameters}),this.addHandles(d((()=>{const{layer:e}=this;return e&&"sublayers"in e&&e.sublayers}),(()=>this._constructLegendElementsForWMSSublayers())),"wms-sublayers-watcher"),this.legendElements=await this._generateLegendElementsForWMSSublayers(e.sublayers,t),this.notifyChange("ready")}async _generateLegendElementsForWMSSublayers(e,t){const l=[];this.addHandles(e.on("change",(()=>this._constructLegendElementsForWMSSublayers())),"wms-sublayers-watcher");const s=e.toArray();for(const r of s){const e=d((()=>[r.title,r.visible,r.legendEnabled]),(()=>this._constructLegendElementsForWMSSublayers()));if(this.addHandles(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){let l=e.legendUrl;if(!l)return;const r={type:"symbol-table",title:e.title||e.name||String(e.id??""),infos:[]};t&&(l=p(l,t));let i=null;const n=e.layer?.opacity;try{i=(await s(l,{responseType:"image"})).data,i&&(i.style.opacity=n)}catch{}return r.infos.push({src:l,preview:i,opacity:n}),r}_getLegendLayers(e,t){const l=$e&&$e[e];return l?Promise.resolve(l):this._legendRequest(t).then((t=>{const l=t.layers;return $e[e]=l,l}))}_legendRequest(e){const t=this.layer;let l={f:"json",dynamicLayers:e};if(Oe(t)){const e=t.exportImageServiceParameters.rasterFunction;if(e&&(l.renderingRule=JSON.stringify(e.functionDefinition?.toJSON()||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=re+"?soapUrl="+encodeURI(t)+"&returnbytes=true"}return s(r,{query:l}).then((e=>e.data))}async _constructLegendElementsForBuildingSceneLayer(){this.legendElements=[],this.removeHandles("sublayers-watcher");const e=this.layer;this.addHandles(d((()=>e.sublayers),(()=>this._constructLegendElementsForBuildingSceneLayer())),"sublayers-watcher");try{this.legendElements=await this._generateLegendElementsForBuildingSublayers(e.sublayers,this.opacity),this.notifyChange("ready")}catch(t){o.getLogger(this).warn("Request to server for legend has failed!",t)}}async _generateLegendElementsForBuildingSublayers(e,t){let l=[];this.addHandles(e.on("change",(()=>this._constructLegendElementsForBuildingSceneLayer())),"sublayers-watcher");const s=e.toArray();for(const r of s){const e=d((()=>["renderer"in r&&r.renderer,r.opacity,r.title,r.visible]),(()=>this._constructLegendElementsForBuildingSceneLayer()));if(this.addHandles(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||e.infos.length>0)))}async _constructLegendElementsForSublayers(){this.legendElements=[],this.removeHandles("sublayers-watcher");const e=this.layer;if(De(e)||Pe(e)||Te(e)){this.addHandles(d((()=>e.sublayers),(()=>this._constructLegendElementsForSublayers)),"sublayers-watcher");try{this.legendElements=await this._generateLegendElementsForSublayers(e.sublayers,this.opacity),this.notifyChange("ready")}catch(t){o.getLogger(this).warn("Request to server for legend has failed!",t)}}}async _generateLegendElementsForSublayers(e,t,l){const s=this.layer;let r=[];this.addHandles(e.on("change",(()=>this._constructLegendElementsForSublayers())),"sublayers-watcher");let n=e.toArray();!l&&this.sublayerIds&&this.sublayerIds.length&&(n=Te(s)?this.sublayerIds.map((e=>s.findSublayerForSubtypeCode(e))).filter(i):this.sublayerIds.map((e=>s.findSublayerById(e))).filter(i));for(const i of n){const e=d((()=>[i.renderer,i.opacity,i.title,i.visible,i.legendEnabled]),(()=>this._constructLegendElementsForSublayers()));if(this.addHandles(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,n=!Ne(i)||i.originIdOf("renderer")>b.SERVICE&&!i.sublayers;if(i.renderer&&n){await i.load();r=[...await this._getRendererLegendElements(i.renderer,{title:i.title,opacity:s,sublayer:i}),...r]}else if(Ne(i)){const e=await this._generateSymbolTableElementForSublayer(i,s,l);e&&r.unshift(e)}}}return r.filter((e=>!!e&&(!("infos"in e)||!e.infos||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")>b.SERVICE||e.originIdOf("labelingInfo")>b.SERVICE||e.originIdOf("labelsVisible")>b.SERVICE){const e=new L({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||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){if(!e||!e.legend||this.respectLayerVisibility&&!this._isLegendLayerInScale(e,t))return null;const s=t?.renderer;let r=t?.title||e.layerName;if(s&&(!t||t?.originIdOf("renderer")>b.SERVICE)){const e=t?.title||this._getRendererTitle(s,t);e&&(r&&"string"!=typeof e&&"title"in e&&(e.title=r),r=e)}const i={type:"symbol-table",title:r,legendType:e.legendType||null,infos:[]},n=t?this._sanitizeLegendForSublayer(e.legend.slice(),t):e.legend;return e.legendGroups&&e.legendGroups.length>0?e.legendGroups.forEach((t=>{const s={type:"symbol-table",title:t.heading,legendType:e.legendType||null,infos:this._generateSymbolTableElementInfosForLegendLayer(n.filter((e=>e.groupId===t.id)),e.layerId,l)};s.infos?.length>0&&i.infos.push(s)})):i.infos=this._generateSymbolTableElementInfosForLegendLayer(n,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:s??this.opacity,width:e.width,height:e.height}})).filter(i)}_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=0,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={}){if(!Fe(e,this.view))return o.getLogger(this).warn(`Renderer of type '${e.type}' not supported!`),[];if(Le(e))return this._constructPointCloudRendererLegendElements(e,t);if(Ie(e))return this._constructDotDensityRendererLegendElements(e);const l=await this._loadRenderer(e);return Re(l)?this._constructPieChartRendererLegendElements(l):this._constructRendererLegendElements(l,t)}async _getLegendElementsForFeatureReduction(e){let t=null;return"binning"===e.type?t=e.renderer:"cluster"===e.type&&(t=this._getClusterRenderer(e)),t?this._getRendererLegendElements(t):[]}_getPointCloudRendererTitle(e){return(e.legendOptions?.title||e.field)??""}async _constructPointCloudRendererLegendElements(e,t={}){const l=t.title,s=[];let r=null,i=null;if(ve(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(ce,e.color)})}));else if(Ee(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=A(e+(l-e)/2,t)}}r={type:"symbol-table",title:null,infos:[{label:null,value:null,symbol:this._getAppliedCloneSymbol(ce,s||ce.color)}]};const n=M(e.stops??[])??[];i={type:"color-ramp",title:l||this._getPointCloudRendererTitle(e),infos:n,preview:z(n.map((e=>e.color)),{ariaLabel:await qe("previewColorRampAriaLabel")})}}else Ce(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(ce,e.color)})})));r&&r.infos.length&&s.push(r),i&&i.infos.length&&s.push(i);const n=s.reduce(((e,t)=>[...e,...t.infos??[]]),[]).filter((e=>!!e.symbol)).map((t=>this._getSymbolPreview(t,this.opacity,{symbolConfig:{applyColorModulation:!!e.colorModulation}})));return await Promise.allSettled(n),s}async _getElementInfoForDotDensity(e,t){const{color:l,label:s,valueExpressionTitle:r}=t,{backgroundColor:i,outline:n,dotSize:a}=e,o=this.effectList,u=o?.effects.map((e=>e.toJSON())),c=_(u),d=await qe("previewTemplateAriaLabel",s||r),y=a+"-"+l+"-"+i+"-"+(n&&JSON.stringify(n.toJSON()))+"-"+c,h=this._dotDensityUrlCache,m=h.has(y)?h.get(y):x(e,l,{ariaLabel:d});h.set(y,m);const p={shape:{type:"image",x:0,y:0,width:m.width,height:m.height,src:m.src},fill:null,stroke:null,offset:[0,0]},f=T([[p]],[m.width,m.height],{effectView:this.effectList,ariaLabel:d});return{opacity:1,src:m.src,preview:f,width:m.width,height:m.height}}async _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:[]};for(const r of e.attributes){const t=await this._getElementInfoForDotDensity(e,r);t.label=r.label||r.valueExpressionTitle||r.field,s.infos.push(t)}return[s]}async _constructPieChartRendererLegendElements(e){const t=this.layer.opacity,l=[];let s=null;const r=e.outline;e.attributes.forEach((e=>{const t=new ee({color:e.color,outline:r}),s=e.label||e.valueExpressionTitle||e.field;l.push({label:s,symbol:t})}));const i=l.length?[...l]:[];if(e.othersCategory?.color&&0!==e.othersCategory?.threshold){const t=new ee({color:e.othersCategory.color,outline:r});s=e.othersCategory.label||"Other",l.push({label:s,symbol:t})}if(e.defaultColor?.a){const t=new ee({color:e.defaultColor,outline:r});l.push({label:e.defaultLabel,symbol:t})}const n=await this._getVisualVariableLegendElements(e,this.layer)||[];if(l.length){n.unshift({type:"symbol-table",title:null,infos:l});const t=i.filter((e=>e.label!==s)).map((e=>e.symbol.color)).filter(Boolean),a=j(t,{holePercentage:e.holePercentage,backgroundColor:e.backgroundFillSymbol?.color,effectList:this.effectList,outline:r,ariaLabel:await qe("previewPieChartAriaLabel")});n.unshift({type:"pie-chart-ramp",title:this._getRendererTitle(e,this.layer),infos:l,preview:a})}const a=n.reduce(((e,t)=>[...e,...this._getAllInfos(t)]),[]).filter((e=>!!e?.symbol&&!e?.preview)).map((e=>this._getSymbolPreview(e,t,{effectList:this.effectList})));return await Promise.allSettled(a),n}async _constructRendererLegendElements(e,t={}){const{title:l,sublayer:s}=t,r=s||this.layer;this._hasColorRamp=!1,this._hasOpacityRamp=!1,this._hasSizeRamp=!1,this._scaleDrivenSizeVariable=null;const i=await this._getVisualVariableLegendElements(e,r)||[],n={type:"symbol-table",title:l||this._getRendererTitle(e,r),infos:[]};let a=null,o=!1;const u=new Set;if(ye(e)&&!this._hasSizeRamp){const t=await Q(e);n.infos.push({label:null,symbol:t})}else if(Be(e)){let t=l;const s=ke(e)?"univariate-above-and-below-ramp":"univariate-color-size-ramp",r=i.findIndex((e=>"color-ramp"===e.type)),n=-1!==r?i.splice(r,1)[0]:null,a=i.findIndex((e=>"size-ramp"===e.type)),o=-1!==a?i.splice(a,1)[0]:null,u=[];n&&(t=n.title,u.push(n)),o&&(t=o.title,u.push(o)),u.length>0&&i.push({type:s,title:t,infos:u})}else if(_e(e)){const t=k(e);i.push({type:"heatmap-ramp",title:l||this._getRendererTitle(e,r),infos:t,preview:z(t.map((e=>e.color)),{effectList:this.effectList,ariaLabel:await qe("previewColorRampAriaLabel")})})}else if(Se(e)){const t=e&&e.authoringInfo;if(t&&"relationship"===t.type){const{numClasses:l,field1:s,field2:a}=t,o=t.focus;if(l&&s&&a){const t=[s,a];let c=N(o)||0;for(const e of t){const{field:t,normalizationField:l,label:s}=e,i=s||{field:this._getFieldAlias(t,r),normField:l&&this._getFieldAlias(l,r)},a=He.clone();a.angle=c,n.infos.push({label:i,symbol:a}),u.add(a),c+=90}const d=q({focus:o,numClasses:l,infos:e.uniqueValueInfos??[]});i.unshift(d)}}else if(Oe(this.layer)||Ae(this.layer))e.uniqueValueInfos?.forEach((e=>{e.symbol&&n.infos.push({label:e.label||e.value,value:e.value,symbol:e.symbol})}));else{const{field:t,field2:s,field3:i,fieldDelimiter:a,valueExpression:u,defaultSymbol:c}=e,d=!(!t&&!u||!s&&!i),y=[];if(e.uniqueValueGroups?.forEach((e=>{const l={type:"symbol-table",title:e.heading,infos:[]};e.classes?.forEach((e=>{const{symbol:n,values:o}=e;if(n){const c=[],y=[];for(const e of o??[]){const{value:l,value2:n,value3:o}=e,h=[],m=[];(t||u)&&(h.push(l),m.push(this._getDomainName(t,l,r))),s&&(h.push(n),m.push(this._getDomainName(s,n,r))),i&&(h.push(o),m.push(this._getDomainName(i,o,r))),c.push(d?h.join(a||""):h[0]),y.push(m.join(" - "))}const h=c.join(", ");let m=e.label;if(!m){const e=y.filter(Boolean);m=e.length?e.join(", "):h}l.infos.push({label:m,value:h,symbol:n})}})),l.infos.length&&y.push(l)})),y.length){const t=y[0];1===y.length&&"title"in t&&!t.title?n.infos.push(...t.infos??[]):(c&&(y.push({type:"symbol-table",infos:[{label:e.defaultLabel||"others",symbol:c}]}),o=!0),n.infos.push(...y)),l||e.legendOptions&&e.legendOptions.title||e.valueExpressionTitle||(n.title=null)}}e.defaultSymbol&&!o&&(n.infos.push({label:e.defaultLabel||"others",symbol:e.defaultSymbol}),o=!0)}else if(be(e)){a=this._isUnclassedRenderer(e);(!a||!this._hasSizeRamp)&&(e.classBreakInfos.forEach((e=>{e.symbol&&n.infos.unshift({label:e.label||(a?null:e.minValue+" - "+e.maxValue),value:[e.minValue,e.maxValue],symbol:e.symbol})})),a&&(n.title=null),this._updateInfosforClassedSizeRenderer(e,n.infos)),e.defaultSymbol&&!a&&(n.infos.push({label:e.defaultLabel||"others",symbol:e.defaultSymbol}),o=!0)}else if(pe(e))if(Ae(this.layer)||Me(this.layer)){const t=await this._constructTileImageryStretchRendererElements(e);Ue(t)?i.push(t):n.infos=t}else{const t=this.layer;let l,s;if(e.statistics?.length){const t=e.statistics[0];K(t)?(l=t.min,s=t.max):[l,s]=t}let r=[],a=t.serviceRasterInfo;if(t.rasterFunction)try{a=await t.generateRasterInfo(t.rasterFunction)}catch{}const o=a.keyProperties.BandProperties,u=E(a.pixelType);if(1===a.bandCount){const r=t.bandIds?.[0]||0;l=null!=l?l:a.statistics?a.statistics[r].min:u[0],s=null!=s?s:a.statistics?a.statistics[r].max:u[1],l||s?i.push(await this._getStretchLegendElements(e,{min:l,max:s})):this._getServerSideLegend()}else t.bandIds&&1===t.bandIds.length?(l=null!=l?l:a.statistics?a.statistics[t.bandIds[0]].min:u[0],s=null!=s?s:a.statistics?a.statistics[t.bandIds[0]].max:u[1],l||s?i.push(await this._getStretchLegendElements(e,{min:l,max:s})):this._getServerSideLegend()):a.bandCount>=3?o&&o.length>=a.bandCount?t.bandIds&&3===t.bandIds.length?(r=t.bandIds.map((e=>o[e].BandName)),n.infos=this._createSymbolTableElementMultiBand(r)):"lerc"===t.format?(r=[0,1,2].map((e=>o[e].BandName)),n.infos=this._createSymbolTableElementMultiBand(r)):this._getServerSideLegend():"lerc"===t.format?(r=["band1","band2","band3"],n.infos=this._createSymbolTableElementMultiBand(r)):this._getServerSideLegend():this._getServerSideLegend()}else if(me(e))e.colormapInfos.forEach((e=>{n.infos.push({label:e.label,value:e.value,symbol:this._getAppliedCloneSymbol(de,e.color)})}));else if(ge(e)){let l=e.symbol;switch(t.geometryType){case"point":l="pointSymbol"in r?r.pointSymbol:null;break;case"polyline":l="lineSymbol"in r?r.lineSymbol:null;break;case"polygon":l="polygonSymbol"in r?r.polygonSymbol:null}const s=this._hasClusterSizeVariable&&this._getClusterSymbol()||!this._hasSizeRamp;e.symbol&&s&&n.infos.push({label:e.label,symbol:l})}else if(he(e)){e.outputUnit&&(this.title="("+e.toJSON().outputUnit+")"),n.title=e.attributeField;const t=e.getClassBreakInfos();t?.length?t.forEach((e=>{n.infos.push({label:e.minValue+" - "+e.maxValue,symbol:e.symbol})})):n.infos.push({label:e.attributeField,symbol:e.getDefaultSymbol()})}else fe(e)&&i.push(await this._getStretchLegendElements(e,{min:0,max:255}));const c=e.defaultSymbol;!c||o||ge(e)||a&&!this._hasColorRamp&&!this._hasSizeRamp&&!this._hasOpacityRamp||i.push({type:"symbol-table",infos:[{label:e.defaultLabel||"others",symbol:c}]}),n.infos.length&&i.unshift(n);const d=null==t.opacity?this.opacity:t.opacity,y=this._isTallSymbol("visualVariables"in e?e.visualVariables:null),h=Oe(this.layer)||Ae(this.layer),m=i.reduce(((e,t)=>[...e,...this._getAllInfos(t)]),[]).filter((e=>!!e?.symbol)).map((e=>this._getSymbolPreview(e,d,{isDefault:e.symbol===c,applyScaleDrivenSize:!u.has(e.symbol),symbolConfig:{isTall:y,isSquareFill:h},effectList:u.has(e.symbol)?null:this.effectList})));return e=null,await Promise.allSettled(m),i}_getServerSideLegend(){setTimeout((()=>this.buildLegendElementsForTools()),0)}_getAllInfos(e){const t=e?.infos;return t?t.reduce(((e,t)=>e.concat(this._getAllInfos(t))),[]):[e]}async _constructTileImageryStretchRendererElements(e){const t=this.layer,l=t.symbolizer.rasterInfo??t.raster.rasterInfo,s=l.bandCount||e.statistics.length;let r,i,n=[];const a=l.keyProperties&&l.keyProperties.BandProperties,o=e?.statistics?.length?e.statistics:l?.statistics;if(o){const e=o[0];K(e)?(r=e.min,i=e.max):[r,i]=e}else{const e=E(l.pixelType);r=e[0],i=e[1]}if(t.hasStandardTime()&&(r=t.getStandardTimeValue(r),i=t.getStandardTimeValue(i)),1===l.bandCount||1===t.bandIds?.length)return this._getStretchLegendElements(e,{min:r,max:i});function u(e){const s=(t?.bandIds?.length?t.bandIds:Array.from(Array(Math.min(l.bandCount,3)).keys())).map((t=>e&&e[t]&&e[t].BandName||"band"+(t+1)));return s.length<3?s.push(s[1]):s.length>3&&s.splice(3),s}return n=a&&a.length>=s?u(a):u(),this._createSymbolTableElementMultiBand(n)}async _getStretchLegendElements(e,t){const l=e.colorRamp,s=U(l,t);return{type:"stretch-ramp",title:"",infos:s,preview:z(s.map((e=>e.color)),{ariaLabel:await qe("previewColorRampAriaLabel")})}}_getClusterSymbol(){const e=this.layer,t="featureReduction"in e&&e.featureReduction,l=t&&"symbol"in t&&t.renderer;return l&&!0!==l?.authoringInfo?.isAutoGenerated?null:t&&"symbol"in t?t.symbol:null}async _getSizeLegendElement(e,t,l,s){return{type:"size-ramp",title:this._hasClusterSizeVariable?this._getClusterTitle(t):e,infos:await H(l,t,await X(l),this.scale,this.view.type,!!s,this._hasClusterSizeVariable?this._getClusterSymbol():null)}}_createSymbolTableElementMultiBand(e){const t=[],l=["red","green","blue"];return e.forEach(((e,s)=>{t.push({label:{colorName:l[s],bandName:e},src:Y[s],opacity:this.opacity??1})})),t}_updateInfosforClassedSizeRenderer(e,t){const l=e.authoringInfo&&"class-breaks-size"===e.authoringInfo.type,s=e.classBreakInfos.some((e=>P(e.symbol)));if(l&&s){const l=$,s=W,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=!l?.isDefault&&null==e.size&&this._hasSizeRamp?m(V.size):e.size;if(this._scaleDrivenSizeVariable&&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})}const r=!l?.isDefault&&this._hasSizeRamp||!(!this._scaleDrivenSizeVariable||!l?.applyScaleDrivenSize);return D(e.symbol,{size:s,opacity:t,scale:!1,symbolConfig:l?.symbolConfig,effectView:l?.effectList,style:"legend",cimOptions:{allowScalingUp:r},ariaLabel:e.label&&"string"!=typeof e.label?null:await qe("previewTemplateAriaLabel",e.label)}).then((t=>(e.preview=t,e))).catch((()=>(e.preview=null,e)))}_getClusterRenderer(e){this._hasClusterSizeVariable=!1;const t="renderer"in this.layer?this.layer.renderer:null,l=e.renderer?.clone()||t?.clone(),s=O(this.layerView._effectiveRenderer,this.view);if(s&&null!=l&&"visualVariables"in l){const t=l.visualVariables?.some((e=>"size"===e.type&&"outline"!==e.target&&!oe.test(e.valueExpression)));if(!t){if("clusterMinSize"in e&&"clusterMaxSize"in e){const{clusterMinSize:t,clusterMaxSize:l}=e;s.legendOptions=new R({showLegend:t!==l})}const t=l.visualVariables||[];l.visualVariables=t.concat([s]),this._hasClusterSizeVariable=!0}}return l}async _loadRenderer(e){const t=[],l=e.clone(),s=await X(l);if(be(l)||Se(l)){const e=(l.classBreakInfos||l.uniqueValueInfos).map((e=>this._fetchSymbol(e.symbol,s).then((t=>{e.symbol=t})).catch((()=>{e.symbol=null}))));Array.prototype.push.apply(t,e)}return t.push(this._fetchSymbol(l.symbol||l.defaultSymbol,l.defaultSymbol?null:s).then((e=>{this._applySymbolToRenderer(l,e,ge(l))})).catch((()=>{this._applySymbolToRenderer(l,null,ge(l))}))),await Promise.allSettled(t),l}_applySymbolToRenderer(e,t,l){l?e.symbol=t:e.defaultSymbol=t}async _fetchSymbol(e,t){if(!e)throw new Error;if("web-style"===e.type){const l=this._webStyleSymbolCache;try{const s=await("2d"===this.view.type?e.fetchCIMSymbol({cache:l}):e.fetchSymbol({cache:l}));return this._getAppliedCloneSymbol(s,t)}catch{throw o.getLogger(this).warn("Fetching web-style failed!"),new Error}}return this._getAppliedCloneSymbol(e,t)}_getAppliedCloneSymbol(e,l){if(!e||!l)return e;const s=e.clone(),r=l&&l.toRgba();return s.type.includes("3d")?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 i of l)"color"===i.type?s.push(i):"size"===i.type?r.push(i):"opacity"===i.type&&n.push(i);const a=[...s,...r,...n];let o,u;if(0===s.length&&be(e)&&e.classBreakInfos&&1===e.classBreakInfos.length){const t=e.classBreakInfos[0];o=t&&t.symbol}if(0===s.length&&ge(e)&&(o=e.symbol),o)if(o.type.includes("3d")){const e=o.symbolLayers.at(0);"water"===e.type?null!=e.color&&(u=e.color):null!=e.material&&null!=e.material.color&&(u=e.material.color)}else o.url||(u=o.color);const c=this.effectList;return(await Promise.all(a.map((async l=>{if(!l.legendOptions||!1!==l.legendOptions.showLegend){const s=ye(e)?l.field:this._getRampTitle(l,t);let r=null;const i="getField"in t?t.getField?.(l.field):null,n=i&&w(i);if("color"===l.type){const e=await B(l,null,n)??[];r={type:"color-ramp",title:s,infos:e,preview:z(e.map((e=>e.color)),{effectList:c,ariaLabel:await qe("previewColorRampAriaLabel")})},this._hasColorRamp||(this._hasColorRamp=e.length>0)}else if("size"===l.type&&"outline"!==l.target)oe.test(l.valueExpression)?this._hasClusterSizeVariable||(this._scaleDrivenSizeVariable=l):(r=await this._getSizeLegendElement(s,l,e,n),this._hasSizeRamp||(this._hasSizeRamp=!(null==r.infos||!r.infos.length)));else if("opacity"===l.type){const e=await B(l,u,n)??[];r={type:"opacity-ramp",title:s,infos:e,preview:z(e.map((e=>e.color)),{effectList:c,ariaLabel:await qe("previewColorRampAriaLabel")})},this._hasOpacityRamp||(this._hasOpacityRamp=e.length>0)}return r&&r.infos?r:null}})))).filter(i)}_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"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;if(be(l)&&(r=l.normalizationField,i="percent-of-total"===l.normalizationType),s="function"==typeof s?null:s,r="function"==typeof r?null:r,Se(l)){const{field2:e,field3:r,fieldDelimiter:i}=l;let n=s&&this._getFieldAlias(s,t);return e&&(n=`<${n}>${i}<${this._getFieldAlias(e,t)}>`,r&&(n=`${n}${i}<${this._getFieldAlias(r,t)}>`)),n}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:null,s=l?.fieldInfos;let r;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));let n=null;const a="featureReduction"in t&&t.featureReduction;a&&(!r&&"popupTemplate"in a&&a.popupTemplate&&a.popupTemplate.fieldInfos&&a.popupTemplate.fieldInfos.some((t=>e?.toLowerCase()===t.fieldName?.toLowerCase()&&(r=t,!0))),"fields"in a&&a.fields&&(n=a.fields.find((t=>t.name?.toLowerCase()===e?.toLowerCase()))));const o=r||i||n;let u=null;return o&&(u=r?.label||i?.alias||n?.alias||"name"in o&&o.name||"fieldName"in o&&o.fieldName||null),u}_isUnclassedRenderer(e){const t=e.visualVariables;let l=!1;return be(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([f()],We.prototype,"children",void 0),e([f({readOnly:!0})],We.prototype,"effectList",null),e([f()],We.prototype,"layerView",void 0),e([f()],We.prototype,"layer",void 0),e([f()],We.prototype,"legendElements",void 0),e([f({readOnly:!0})],We.prototype,"opacity",null),e([f()],We.prototype,"parent",void 0),e([f({readOnly:!0,dependsOn:[]})],We.prototype,"ready",null),e([f()],We.prototype,"hideLayersNotInCurrentView",void 0),e([f()],We.prototype,"keepCacheOnDestroy",void 0),e([f()],We.prototype,"respectLayerVisibility",void 0),e([f({readOnly:!0})],We.prototype,"scale",null),e([f()],We.prototype,"sublayerIds",void 0),e([f({readOnly:!0})],We.prototype,"isScaleDriven",null),e([f()],We.prototype,"title",void 0),e([f({readOnly:!0,dependsOn:["ready"],value:0})],We.prototype,"version",null),e([f()],We.prototype,"view",void 0),We=e([g("esri.widgets.Legend.support.ActiveLayerInfo")],We);const Ge=We;export{Ge as default};
|
|
5
|
+
import{_ as e}from"../../../chunks/tslib.es6.js";import t from"../../../Color.js";import"../../../intl.js";import{addTokenParameter as l}from"../../../kernel.js";import s from"../../../request.js";import"../../../symbols.js";import r from"../../../core/Accessor.js";import{isSome as i}from"../../../core/arrayUtils.js";import n from"../../../core/Collection.js";import{JSONMap as a}from"../../../core/jsonMap.js";import o from"../../../core/Logger.js";import{debounce as u}from"../../../core/promiseUtils.js";import{on as c,watch as d,whenOnce as y,initial as h}from"../../../core/reactiveUtils.js";import{px2pt as m}from"../../../core/screenUtils.js";import{addQueryParameters as p}from"../../../core/urlUtils.js";import{property as f}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/accessorSupport/ensureType.js";import"../../../core/has.js";import{subclass as g}from"../../../core/accessorSupport/decorators/subclass.js";import{OriginId as b}from"../../../core/accessorSupport/PropertyOrigin.js";import{EffectView as S}from"../../../layers/effects/EffectView.js";import{effectFunctionsFromJSON as _}from"../../../layers/effects/jsonUtils.js";import{ExportImageParameters as w}from"../../../layers/support/ExportImageParameters.js";import{isDateField as L}from"../../../layers/support/fieldUtils.js";import{isFeatureLayer as v}from"../../../layers/support/layerUtils.js";import{getPixelValueRange as E}from"../../../layers/support/rasterFormats/pixelRangeUtils.js";import{fromJSON as C}from"../../../renderers/support/jsonUtils.js";import{isSupportedRenderer3D as I}from"../../../renderers/support/rendererConversion.js";import R from"../../../renderers/visualVariables/support/SizeVariableLegendOptions.js";import{applyCIMSymbolColor as F}from"../../../symbols/support/cimSymbolUtils.js";import{SymbolSizeDefaults as V}from"../../../symbols/support/previewUtils.js";import{renderSymbol as T}from"../../../symbols/support/renderUtils.js";import{renderColorRampPreviewHTML as z,renderDotDensityPreviewHTML as x,renderPieChartPreviewHTML as D,renderPreviewHTML as j}from"../../../symbols/support/symbolUtils.js";import{isVolumetricSymbol as P}from"../../../symbols/support/utils.js";import{getClusterSizeVariable as O}from"./clusterUtils.js";import{getColorFromPointCloudStops as A,getRampStopsForPointCloud as M,getStrectchRampStops as k,getRampStops as B}from"./colorRampUtils.js";import{getHeatmapRampStops as U}from"./heatmapRampUtils.js";import{getRotationAngleForFocus as N,getRelationshipRampElement as q}from"./relationshipRampUtils.js";import{getRampStops as H,realWorldMaxSize as $,realWorldMinSize as W}from"./sizeRampUtils.js";import{specialCharsLessThan as G,specialCharsGreaterThan as J,getSymbolForFlowRenderer as Q,isRasterBandStatistics as K,getMedianColor as X,rgbImgSource as Y}from"./utils.js";import{formatNumberLabel as Z}from"../../smartMapping/support/utils.js";import ee from"../../../symbols/SimpleMarkerSymbol.js";import te from"../../../symbols/SimpleFillSymbol.js";import{fetchMessageBundle as le}from"../../../intl/messages.js";import{substitute as se}from"../../../intl/substitute.js";const re="https://utility.arcgis.com/sharing/tools/legend",ie="esri.layers.ImageryLayer",ne="esri.layers.ImageryTileLayer",ae="esri.layers.WCSLayer",oe=/^\s*(return\s+)?\$view\.scale\s*(;)?\s*$/i,ue=new a({esriGeometryPoint:"point",esriGeometryMultipoint:"multipoint",esriGeometryPolyline:"polyline",esriGeometryPolygon:"polygon",esriGeometryMultiPatch:"multipatch"}),ce=new ee({size:6,outline:{color:[128,128,128,.5],width:.5}}),de=new te({style:"solid"});function ye(e){return"flow"===e.type}function he(e){return"vector-field"===e.type}function me(e){return"raster-colormap"===e.type}function pe(e){return"raster-stretch"===e.type}function fe(e){return"raster-shaded-relief"===e.type}function ge(e){return"esri.renderers.SimpleRenderer"===e.declaredClass}function be(e){return"esri.renderers.ClassBreaksRenderer"===e.declaredClass}function Se(e){return"esri.renderers.UniqueValueRenderer"===e.declaredClass}function _e(e){return"esri.renderers.HeatmapRenderer"===e.declaredClass}function we(e){return ve(e)||Ee(e)||Ce(e)||Le(e)}function Le(e){return"esri.renderers.PointCloudRGBRenderer"===e.declaredClass}function ve(e){return"esri.renderers.PointCloudClassBreaksRenderer"===e.declaredClass}function Ee(e){return"esri.renderers.PointCloudStretchRenderer"===e.declaredClass}function Ce(e){return"esri.renderers.PointCloudUniqueValueRenderer"===e.declaredClass}function Ie(e){return"esri.renderers.DotDensityRenderer"===e.declaredClass}function Re(e){return"esri.renderers.PieChartRenderer"===e.declaredClass}function Fe(e,t){return ge(e)||be(e)||Se(e)||_e(e)||Ie(e)||Re(e)?"2d"===t.type||I(e):pe(e)||me(e)||fe(e)||ve(e)||Ee(e)||Ce(e)||he(e)||ye(e)}function Ve(e){return"esri.layers.BuildingSceneLayer"===e.declaredClass}function Te(e){return"esri.layers.SubtypeGroupLayer"===e.declaredClass}function ze(e){return"esri.layers.VoxelLayer"===e.declaredClass}function xe(e){return"esri.layers.WMSLayer"===e.declaredClass}function De(e){return"esri.layers.WMTSLayer"===e.declaredClass}function je(e){return"esri.layers.MapImageLayer"===e.declaredClass}function Pe(e){return"esri.layers.TileLayer"===e.declaredClass}function Oe(e){return e.declaredClass===ie}function Ae(e){return e.declaredClass===ne}function Me(e){return e.declaredClass===ae}function ke(e){return"stretch-ramp"===e.type}function Be(e){const t="authoringInfo"in e?e?.authoringInfo:null;return"univariate-color-size"===t?.type}function Ue(e){const t="authoringInfo"in e?e?.authoringInfo:null;return"univariate-color-size"===t?.type&&"above-and-below"===t?.univariateTheme}function Ne(e){return"sublayers"in e}async function qe(e,t){const l=await le("esri/widgets/Legend/t9n/Legend");return"previewTemplateAriaLabel"!==e||t||(e="previewAriaLabel"),se(l[e],{label:t})}const He=new ee({style:"path",path:"M10,5 L5,0 0,5 M5,0 L5,15",size:15,outline:{width:1,color:[85,85,85,1]}});let $e={},We=class extends r{constructor(e){super(e),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.addHandles([c((()=>this.children),"change",(t=>{const{added:l,removed:s}=t;l.forEach((t=>{const l=`activeLayerInfo-ready-watcher-${t.layer.uid}`;this.addHandles(d((()=>t.ready),e,h),l)})),s.forEach((e=>this.removeHandles(e.layer.uid))),e()}))]),this.keepCacheOnDestroy||($e={})}destroy(){this._webStyleSymbolCache=null,this._dotDensityUrlCache=null,this._scaleDrivenSizeVariable=null,this.keepCacheOnDestroy||($e=null)}get effectList(){const e=this.layer;let t=null;return"effect"in e&&e.effect&&(t=new S,t.effect=e.effect,t.endTransitions(),t.scale=this.scale),t}get opacity(){const e=this.layer.opacity,t=this.parent?.opacity,l=this.layer.parent,s=l&&"uid"in l?this._getParentLayerOpacity(l):null;return null!=t?t*e:null!=s?s*e:e}get ready(){return null===this.layer||(this.children.length>0?this._isGroupActive():this.legendElements.length>0)}get scale(){return this.view?.scale??0}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){if("cluster"===e.featureReduction.type)return!0;if("binning"===e.featureReduction.type&&"renderer"in e.featureReduction&&e.featureReduction.renderer)return this._isRendererScaleDriven(e.featureReduction.renderer)}return"renderer"in e&&e.renderer?this._isRendererScaleDriven(e.renderer):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(v(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=ue.read(t.geometryType);return s?this._getRendererLegendElements(s,{title:e.name,geometryType:r}):(o.getLogger(this).warn("drawingInfo not available!"),null)}return null}));try{const e=[],l=await Promise.allSettled(t);for(const t of l)if("fulfilled"===t.status)for(const l of t.value??[])e.push(l);this.legendElements=e,this.notifyChange("ready")}catch(l){o.getLogger(this).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){o.getLogger(this).warn("error while building legend for layer!",t)}}async buildLegendElementsForFeatureReduction(e){try{const t=!this.hideLayersNotInCurrentView||await this._isLayerInCurrentView();this.legendElements=t?await this._getLegendElementsForFeatureReduction(e):[],this.notifyChange("ready")}catch(t){o.getLogger(this).warn("error while building legend for layer!",t)}}async buildLegendElementsForTools(){const e=this.layer;if(ze(e))this._constructLegendElementsForVoxellayer();else if(De(e))this._constructLegendElementsForWMTSlayer();else if(xe(e))await this._constructLegendElementsForWMSSublayers();else if(Ve(e))await this._constructLegendElementsForBuildingSceneLayer();else if(je(e)||Pe(e)||Te(e))await this._constructLegendElementsForSublayers();else{this.removeHandles("imageryLayers-watcher");let t="default";if(Oe(e)){const l=e;t=(l?.rasterFunction?.functionName||"default")+"_"+(e.bandIds?.length?e.bandIds.join(""):"###")}await this._getLegendLayers(`${e.uid}-${t}`).then((async t=>{this.legendElements=[],this.notifyChange("ready");const l=t.map((async t=>{if(Oe(e)||Ae(e)){const t=d((()=>["renderingRule"in e&&e.rasterFunction,e.bandIds]),(()=>u((async()=>{$e.default=null,e.renderer?await this.buildLegendElementsForRenderer(e.renderer):await this.buildLegendElementsForTools()}))()));this.addHandles(t,"imageryLayers-watcher")}const l=this._generateSymbolTableElementForLegendLayer(t);l&&l.infos.length&&(Oe(e)&&(l.title=e.title),this.legendElements.push(l)),this.notifyChange("ready")}));await Promise.allSettled(l)})).catch((e=>{o.getLogger(this).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 y((()=>!t.updating));const s=l?"createQuery"in t&&t.createQuery():"createQuery"in e&&e.createQuery();if(!s)return!0;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))}_isRendererScaleDriven(e){if("dot-density"===e.type)return!0;const t="valueExpression"in e?e.valueExpression:null;if(oe.test(t))return!0;const l="visualVariables"in e?e.visualVariables:null;return l?l.some((e=>this._isScaleDrivenSizeVariable(e))):this._hasScaleDrivenSymbols(e)}_hasScaleDrivenSymbols(e){switch(e.type){case"simple":return this._isScaleDrivenSymbol(e.symbol);case"class-breaks":return this._isScaleDrivenSymbol(e.defaultSymbol)||e.classBreakInfos.some((e=>this._isScaleDrivenSymbol(e.symbol)));case"unique-value":return this._isScaleDrivenSymbol(e.defaultSymbol)||!!e.uniqueValueInfos?.some((e=>this._isScaleDrivenSymbol(e.symbol)))}return!1}_isScaleDrivenSymbol(e){return"cim"===e?.type&&(null!=e.data.minScale||null!=e.data.maxScale)}_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||oe.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&&je(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.removeHandles("voxel-style-watcher"),this.removeHandles("voxel-current-variable");const e=this.layer;this.addHandles(d((()=>e.currentVariableId),(()=>this._constructLegendElementsForVoxellayer())),"voxel-current-variable"),this.addHandles(d((()=>e.getVariableStyles()),(()=>this._constructLegendElementsForVoxellayer())),"voxel-style-watcher");const t=e.getVariableStyle(null),l=[];if(t)if(t.uniqueValues?.length){const e=[];t.uniqueValues.forEach((t=>{t.enabled&&e.push({label:t.label||`${t.value}`,value:t.value,symbol:new te({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?G:J} ${Z(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:z(r.map((e=>e.color)),{ariaLabel:await qe("previewColorRampAriaLabel")})})}const s=e.opacity,r=l.reduce(((e,t)=>[...e,...this._getAllInfos(t)]),[]).filter((e=>!!e?.symbol)).map((e=>this._getSymbolPreview(e,s)));await Promise.allSettled(r),this.legendElements=l,this.notifyChange("ready")}_constructLegendElementsForWMTSlayer(){this.legendElements=[],this.removeHandles("wmts-activeLayer-watcher");const e=this.layer.activeLayer;if(this.addHandles(d((()=>{const{layer:e}=this;return e&&"activeLayer"in e&&e.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.removeHandles("wms-sublayers-watcher");const e=this.layer;let t=null;(e.customParameters||e.customLayerParameters)&&(t={...e.customParameters,...e.customLayerParameters}),this.addHandles(d((()=>{const{layer:e}=this;return e&&"sublayers"in e&&e.sublayers}),(()=>this._constructLegendElementsForWMSSublayers())),"wms-sublayers-watcher"),this.legendElements=await this._generateLegendElementsForWMSSublayers(e.sublayers,t),this.notifyChange("ready")}async _generateLegendElementsForWMSSublayers(e,t){const l=[];this.addHandles(e.on("change",(()=>this._constructLegendElementsForWMSSublayers())),"wms-sublayers-watcher");const s=e.toArray();for(const r of s){const e=d((()=>[r.title,r.visible,r.legendEnabled]),(()=>this._constructLegendElementsForWMSSublayers()));if(this.addHandles(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){let l=e.legendUrl;if(!l)return;const r={type:"symbol-table",title:e.title||e.name||String(e.id??""),infos:[]};t&&(l=p(l,t));let i=null;const n=e.layer?.opacity;try{i=(await s(l,{responseType:"image"})).data,i&&(i.style.opacity=n)}catch{}return r.infos.push({src:l,preview:i,opacity:n}),r}_getLegendLayers(e,t){const l=$e&&$e[e];return l?Promise.resolve(l):this._legendRequest(t).then((t=>{const l=t.layers;return $e[e]=l,l}))}_legendRequest(e){const t=this.layer;let l={f:"json",dynamicLayers:e};if(Oe(t)){const e=t.exportImageServiceParameters.rasterFunction;if(e&&(l.renderingRule=JSON.stringify(e.functionDefinition?.toJSON()||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=re+"?soapUrl="+encodeURI(t)+"&returnbytes=true"}return s(r,{query:l}).then((e=>e.data))}async _constructLegendElementsForBuildingSceneLayer(){this.legendElements=[],this.removeHandles("sublayers-watcher");const e=this.layer;this.addHandles(d((()=>e.sublayers),(()=>this._constructLegendElementsForBuildingSceneLayer())),"sublayers-watcher");try{this.legendElements=await this._generateLegendElementsForBuildingSublayers(e.sublayers,this.opacity),this.notifyChange("ready")}catch(t){o.getLogger(this).warn("Request to server for legend has failed!",t)}}async _generateLegendElementsForBuildingSublayers(e,t){let l=[];this.addHandles(e.on("change",(()=>this._constructLegendElementsForBuildingSceneLayer())),"sublayers-watcher");const s=e.toArray();for(const r of s){const e=d((()=>["renderer"in r&&r.renderer,r.opacity,r.title,r.visible]),(()=>this._constructLegendElementsForBuildingSceneLayer()));if(this.addHandles(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||e.infos.length>0)))}async _constructLegendElementsForSublayers(){this.legendElements=[],this.removeHandles("sublayers-watcher");const e=this.layer;if(je(e)||Pe(e)||Te(e)){this.addHandles(d((()=>e.sublayers),(()=>this._constructLegendElementsForSublayers)),"sublayers-watcher");try{this.legendElements=await this._generateLegendElementsForSublayers(e.sublayers,this.opacity),this.notifyChange("ready")}catch(t){o.getLogger(this).warn("Request to server for legend has failed!",t)}}}async _generateLegendElementsForSublayers(e,t,l){const s=this.layer;let r=[];this.addHandles(e.on("change",(()=>this._constructLegendElementsForSublayers())),"sublayers-watcher");let n=e.toArray();!l&&this.sublayerIds&&this.sublayerIds.length&&(n=Te(s)?this.sublayerIds.map((e=>s.findSublayerForSubtypeCode(e))).filter(i):this.sublayerIds.map((e=>s.findSublayerById(e))).filter(i));for(const i of n){const e=d((()=>[i.renderer,i.opacity,i.title,i.visible,i.legendEnabled]),(()=>this._constructLegendElementsForSublayers()));if(this.addHandles(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,n=!Ne(i)||i.originIdOf("renderer")>b.SERVICE&&!i.sublayers;if(i.renderer&&n){await i.load();r=[...await this._getRendererLegendElements(i.renderer,{title:i.title,opacity:s,sublayer:i}),...r]}else if(Ne(i)){const e=await this._generateSymbolTableElementForSublayer(i,s,l);e&&r.unshift(e)}}}return r.filter((e=>!!e&&(!("infos"in e)||!e.infos||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")>b.SERVICE||e.originIdOf("labelingInfo")>b.SERVICE||e.originIdOf("labelsVisible")>b.SERVICE){const e=new w({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||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){if(!e||!e.legend||this.respectLayerVisibility&&!this._isLegendLayerInScale(e,t))return null;const s=t?.renderer;let r=t?.title||e.layerName;if(s&&(!t||t?.originIdOf("renderer")>b.SERVICE)){const e=t?.title||this._getRendererTitle(s,t);e&&(r&&"string"!=typeof e&&"title"in e&&(e.title=r),r=e)}const i={type:"symbol-table",title:r,legendType:e.legendType||null,infos:[]},n=t?this._sanitizeLegendForSublayer(e.legend.slice(),t):e.legend;return e.legendGroups&&e.legendGroups.length>0?e.legendGroups.forEach((t=>{const s={type:"symbol-table",title:t.heading,legendType:e.legendType||null,infos:this._generateSymbolTableElementInfosForLegendLayer(n.filter((e=>e.groupId===t.id)),e.layerId,l)};s.infos?.length>0&&i.infos.push(s)})):i.infos=this._generateSymbolTableElementInfosForLegendLayer(n,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:s??this.opacity,width:e.width,height:e.height}})).filter(i)}_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=0,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={}){if(!Fe(e,this.view))return o.getLogger(this).warn(`Renderer of type '${e.type}' not supported!`),[];if(we(e))return this._constructPointCloudRendererLegendElements(e,t);if(Ie(e))return this._constructDotDensityRendererLegendElements(e);const l=await this._loadRenderer(e);return Re(l)?this._constructPieChartRendererLegendElements(l):this._constructRendererLegendElements(l,t)}async _getLegendElementsForFeatureReduction(e){let t=null;return"binning"===e.type?t=e.renderer:"cluster"===e.type&&(t=this._getClusterRenderer(e)),t?this._getRendererLegendElements(t):[]}_getPointCloudRendererTitle(e){return(e.legendOptions?.title||e.field)??""}async _constructPointCloudRendererLegendElements(e,t={}){const l=t.title,s=[];let r=null,i=null;if(ve(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(ce,e.color)})}));else if(Ee(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=A(e+(l-e)/2,t)}}r={type:"symbol-table",title:null,infos:[{label:null,value:null,symbol:this._getAppliedCloneSymbol(ce,s||ce.color)}]};const n=M(e.stops??[])??[];i={type:"color-ramp",title:l||this._getPointCloudRendererTitle(e),infos:n,preview:z(n.map((e=>e.color)),{ariaLabel:await qe("previewColorRampAriaLabel")})}}else Ce(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(ce,e.color)})})));r&&r.infos.length&&s.push(r),i&&i.infos.length&&s.push(i);const n=s.reduce(((e,t)=>[...e,...t.infos??[]]),[]).filter((e=>!!e.symbol)).map((t=>this._getSymbolPreview(t,this.opacity,{symbolConfig:{applyColorModulation:!!e.colorModulation}})));return await Promise.allSettled(n),s}async _getElementInfoForDotDensity(e,t){const{color:l,label:s,valueExpressionTitle:r}=t,{backgroundColor:i,outline:n,dotSize:a}=e,o=this.effectList,u=o?.effects.map((e=>e.toJSON())),c=_(u),d=await qe("previewTemplateAriaLabel",s||r),y=a+"-"+l+"-"+i+"-"+(n&&JSON.stringify(n.toJSON()))+"-"+c,h=this._dotDensityUrlCache,m=h.has(y)?h.get(y):x(e,l,{ariaLabel:d});h.set(y,m);const p={shape:{type:"image",x:0,y:0,width:m.width,height:m.height,src:m.src},fill:null,stroke:null,offset:[0,0]},f=T([[p]],[m.width,m.height],{effectView:this.effectList,ariaLabel:d});return{opacity:1,src:m.src,preview:f,width:m.width,height:m.height}}async _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:[]};for(const r of e.attributes){const t=await this._getElementInfoForDotDensity(e,r);t.label=r.label||r.valueExpressionTitle||r.field,s.infos.push(t)}return[s]}async _constructPieChartRendererLegendElements(e){const t=this.layer.opacity,l=[];let s=null;const r=e.outline;e.attributes.forEach((e=>{const t=new ee({color:e.color,outline:r}),s=e.label||e.valueExpressionTitle||e.field;l.push({label:s,symbol:t})}));const i=l.length?[...l]:[];if(e.othersCategory?.color&&0!==e.othersCategory?.threshold){const t=new ee({color:e.othersCategory.color,outline:r});s=e.othersCategory.label||"Other",l.push({label:s,symbol:t})}if(e.defaultColor?.a){const t=new ee({color:e.defaultColor,outline:r});l.push({label:e.defaultLabel,symbol:t})}const n=await this._getVisualVariableLegendElements(e,this.layer)||[];if(l.length){n.unshift({type:"symbol-table",title:null,infos:l});const t=i.filter((e=>e.label!==s)).map((e=>e.symbol.color)).filter(Boolean),a=D(t,{holePercentage:e.holePercentage,backgroundColor:e.backgroundFillSymbol?.color,effectList:this.effectList,outline:r,ariaLabel:await qe("previewPieChartAriaLabel")});n.unshift({type:"pie-chart-ramp",title:this._getRendererTitle(e,this.layer),infos:l,preview:a})}const a=n.reduce(((e,t)=>[...e,...this._getAllInfos(t)]),[]).filter((e=>!!e?.symbol&&!e?.preview)).map((e=>this._getSymbolPreview(e,t,{effectList:this.effectList})));return await Promise.allSettled(a),n}async _constructRendererLegendElements(e,t={}){const{title:l,sublayer:s}=t,r=s||this.layer;this._hasColorRamp=!1,this._hasOpacityRamp=!1,this._hasSizeRamp=!1,this._scaleDrivenSizeVariable=null;const i=await this._getVisualVariableLegendElements(e,r)||[],n={type:"symbol-table",title:l||this._getRendererTitle(e,r),infos:[]};let a=null,o=!1;const u=new Set;if(ye(e)&&!this._hasSizeRamp){const t=await Q(e);n.infos.push({label:null,symbol:t})}else if(Be(e)){let t=l;const s=Ue(e)?"univariate-above-and-below-ramp":"univariate-color-size-ramp",r=i.findIndex((e=>"color-ramp"===e.type)),n=-1!==r?i.splice(r,1)[0]:null,a=i.findIndex((e=>"size-ramp"===e.type)),o=-1!==a?i.splice(a,1)[0]:null,u=[];n&&(t=n.title,u.push(n)),o&&(t=o.title,u.push(o)),u.length>0&&i.push({type:s,title:t,infos:u})}else if(_e(e)){const t=U(e);i.push({type:"heatmap-ramp",title:l||this._getRendererTitle(e,r),infos:t,preview:z(t.map((e=>e.color)),{effectList:this.effectList,ariaLabel:await qe("previewColorRampAriaLabel")})})}else if(Se(e)){const t=e&&e.authoringInfo;if(t&&"relationship"===t.type){const{numClasses:l,field1:s,field2:a}=t,o=t.focus;if(l&&s&&a){const t=[s,a];let c=N(o)||0;for(const e of t){const{field:t,normalizationField:l,label:s}=e,i=s||{field:this._getFieldAlias(t,r),normField:l&&this._getFieldAlias(l,r)},a=He.clone();a.angle=c,n.infos.push({label:i,symbol:a}),u.add(a),c+=90}const d=q({focus:o,numClasses:l,infos:e.uniqueValueInfos??[]});i.unshift(d)}}else if(Oe(this.layer)||Ae(this.layer))e.uniqueValueInfos?.forEach((e=>{e.symbol&&n.infos.push({label:e.label||e.value,value:e.value,symbol:e.symbol})}));else{const{field:t,field2:s,field3:i,fieldDelimiter:a,valueExpression:u,defaultSymbol:c}=e,d=!(!t&&!u||!s&&!i),y=[];if(e.uniqueValueGroups?.forEach((e=>{const l={type:"symbol-table",title:e.heading,infos:[]};e.classes?.forEach((e=>{const{symbol:n,values:o}=e;if(n){const c=[],y=[];for(const e of o??[]){const{value:l,value2:n,value3:o}=e,h=[],m=[];(t||u)&&(h.push(l),m.push(this._getDomainName(t,l,r))),s&&(h.push(n),m.push(this._getDomainName(s,n,r))),i&&(h.push(o),m.push(this._getDomainName(i,o,r))),c.push(d?h.join(a||""):h[0]),y.push(m.join(" - "))}const h=c.join(", ");let m=e.label;if(!m){const e=y.filter(Boolean);m=e.length?e.join(", "):h}l.infos.push({label:m,value:h,symbol:n})}})),l.infos.length&&y.push(l)})),y.length){const t=y[0];1===y.length&&"title"in t&&!t.title?n.infos.push(...t.infos??[]):(c&&(y.push({type:"symbol-table",infos:[{label:e.defaultLabel||"others",symbol:c}]}),o=!0),n.infos.push(...y)),l||e.legendOptions&&e.legendOptions.title||e.valueExpressionTitle||(n.title=null)}}e.defaultSymbol&&!o&&(n.infos.push({label:e.defaultLabel||"others",symbol:e.defaultSymbol}),o=!0)}else if(be(e)){a=this._isUnclassedRenderer(e);(!a||!this._hasSizeRamp)&&(e.classBreakInfos.forEach((e=>{e.symbol&&n.infos.unshift({label:e.label||(a?null:e.minValue+" - "+e.maxValue),value:[e.minValue,e.maxValue],symbol:e.symbol})})),a&&(n.title=null),this._updateInfosforClassedSizeRenderer(e,n.infos)),e.defaultSymbol&&!a&&(n.infos.push({label:e.defaultLabel||"others",symbol:e.defaultSymbol}),o=!0)}else if(pe(e))if(Ae(this.layer)||Me(this.layer)){const t=await this._constructTileImageryStretchRendererElements(e);ke(t)?i.push(t):n.infos=t}else{const t=this.layer;let l,s;if(e.statistics?.length){const t=e.statistics[0];K(t)?(l=t.min,s=t.max):[l,s]=t}let r=[],a=t.serviceRasterInfo;if(t.rasterFunction)try{a=await t.generateRasterInfo(t.rasterFunction)}catch{}const o=a.keyProperties.BandProperties,u=E(a.pixelType);if(1===a.bandCount){const r=t.bandIds?.[0]||0;l=null!=l?l:a.statistics?a.statistics[r].min:u[0],s=null!=s?s:a.statistics?a.statistics[r].max:u[1],l||s?i.push(await this._getStretchLegendElements(e,{min:l,max:s})):this._getServerSideLegend()}else t.bandIds&&1===t.bandIds.length?(l=null!=l?l:a.statistics?a.statistics[t.bandIds[0]].min:u[0],s=null!=s?s:a.statistics?a.statistics[t.bandIds[0]].max:u[1],l||s?i.push(await this._getStretchLegendElements(e,{min:l,max:s})):this._getServerSideLegend()):a.bandCount>=3?o&&o.length>=a.bandCount?t.bandIds&&3===t.bandIds.length?(r=t.bandIds.map((e=>o[e].BandName)),n.infos=this._createSymbolTableElementMultiBand(r)):"lerc"===t.format?(r=[0,1,2].map((e=>o[e].BandName)),n.infos=this._createSymbolTableElementMultiBand(r)):this._getServerSideLegend():"lerc"===t.format?(r=["band1","band2","band3"],n.infos=this._createSymbolTableElementMultiBand(r)):this._getServerSideLegend():this._getServerSideLegend()}else if(me(e))e.colormapInfos.forEach((e=>{n.infos.push({label:e.label,value:e.value,symbol:this._getAppliedCloneSymbol(de,e.color)})}));else if(ge(e)){let l=e.symbol;switch(t.geometryType){case"point":l="pointSymbol"in r?r.pointSymbol:null;break;case"polyline":l="lineSymbol"in r?r.lineSymbol:null;break;case"polygon":l="polygonSymbol"in r?r.polygonSymbol:null}const s=this._hasClusterSizeVariable&&this._getClusterSymbol()||!this._hasSizeRamp;e.symbol&&s&&n.infos.push({label:e.label,symbol:l})}else if(he(e)){e.outputUnit&&(this.title="("+e.toJSON().outputUnit+")"),n.title=e.attributeField;const t=e.getClassBreakInfos();t?.length?t.forEach((e=>{n.infos.push({label:e.minValue+" - "+e.maxValue,symbol:e.symbol})})):n.infos.push({label:e.attributeField,symbol:e.getDefaultSymbol()})}else fe(e)&&i.push(await this._getStretchLegendElements(e,{min:0,max:255}));const c=e.defaultSymbol;!c||o||ge(e)||a&&!this._hasColorRamp&&!this._hasSizeRamp&&!this._hasOpacityRamp||i.push({type:"symbol-table",infos:[{label:e.defaultLabel||"others",symbol:c}]}),n.infos.length&&i.unshift(n);const d=null==t.opacity?this.opacity:t.opacity,y=this._isTallSymbol("visualVariables"in e?e.visualVariables:null),h=Oe(this.layer)||Ae(this.layer),m=i.reduce(((e,t)=>[...e,...this._getAllInfos(t)]),[]).filter((e=>!!e?.symbol)).filter((e=>{if("cim"===e.symbol.type){const{minScale:t,maxScale:l}=e.symbol.data;if(t&&t<this.scale||l&&l>this.scale)return!1}return!0})).map((e=>this._getSymbolPreview(e,d,{isDefault:e.symbol===c,applyScaleDrivenSize:!u.has(e.symbol),symbolConfig:{isTall:y,isSquareFill:h},effectList:u.has(e.symbol)?null:this.effectList})));return e=null,await Promise.allSettled(m),i}_getServerSideLegend(){setTimeout((()=>this.buildLegendElementsForTools()),0)}_getAllInfos(e){const t=e?.infos;return t?t.reduce(((e,t)=>e.concat(this._getAllInfos(t))),[]):[e]}async _constructTileImageryStretchRendererElements(e){const t=this.layer,l=t.symbolizer.rasterInfo??t.raster.rasterInfo,s=l.bandCount||e.statistics.length;let r,i,n=[];const a=l.keyProperties&&l.keyProperties.BandProperties,o=e?.statistics?.length?e.statistics:l?.statistics;if(o){const e=o[0];K(e)?(r=e.min,i=e.max):[r,i]=e}else{const e=E(l.pixelType);r=e[0],i=e[1]}if(t.hasStandardTime()&&(r=t.getStandardTimeValue(r),i=t.getStandardTimeValue(i)),1===l.bandCount||1===t.bandIds?.length)return this._getStretchLegendElements(e,{min:r,max:i});function u(e){const s=(t?.bandIds?.length?t.bandIds:Array.from(Array(Math.min(l.bandCount,3)).keys())).map((t=>e&&e[t]&&e[t].BandName||"band"+(t+1)));return s.length<3?s.push(s[1]):s.length>3&&s.splice(3),s}return n=a&&a.length>=s?u(a):u(),this._createSymbolTableElementMultiBand(n)}async _getStretchLegendElements(e,t){const l=e.colorRamp,s=k(l,t);return{type:"stretch-ramp",title:"",infos:s,preview:z(s.map((e=>e.color)),{ariaLabel:await qe("previewColorRampAriaLabel")})}}_getClusterSymbol(){const e=this.layer,t="featureReduction"in e&&e.featureReduction,l=t&&"symbol"in t&&t.renderer;return l&&!0!==l?.authoringInfo?.isAutoGenerated?null:t&&"symbol"in t?t.symbol:null}async _getSizeLegendElement(e,t,l,s){return{type:"size-ramp",title:this._hasClusterSizeVariable?this._getClusterTitle(t):e,infos:await H(l,t,await X(l),this.scale,this.view.type,!!s,this._hasClusterSizeVariable?this._getClusterSymbol():null)}}_createSymbolTableElementMultiBand(e){const t=[],l=["red","green","blue"];return e.forEach(((e,s)=>{t.push({label:{colorName:l[s],bandName:e},src:Y[s],opacity:this.opacity??1})})),t}_updateInfosforClassedSizeRenderer(e,t){const l=e.authoringInfo&&"class-breaks-size"===e.authoringInfo.type,s=e.classBreakInfos.some((e=>P(e.symbol)));if(l&&s){const l=$,s=W,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=!l?.isDefault&&null==e.size&&this._hasSizeRamp?m(V.size):e.size;if(this._scaleDrivenSizeVariable&&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})}const r=!l?.isDefault&&this._hasSizeRamp||!(!this._scaleDrivenSizeVariable||!l?.applyScaleDrivenSize);return j(e.symbol,{size:s,opacity:t,scale:!1,symbolConfig:l?.symbolConfig,effectView:l?.effectList,style:"legend",cimOptions:{allowScalingUp:r},ariaLabel:e.label&&"string"!=typeof e.label?null:await qe("previewTemplateAriaLabel",e.label)}).then((t=>(e.preview=t,e))).catch((()=>(e.preview=null,e)))}_getClusterRenderer(e){this._hasClusterSizeVariable=!1;const t="renderer"in this.layer?this.layer.renderer:null,l=e.renderer?.clone()||t?.clone(),s=O(this.layerView._effectiveRenderer,this.view);if(s&&null!=l&&"visualVariables"in l){const t=l.visualVariables?.some((e=>"size"===e.type&&"outline"!==e.target&&!oe.test(e.valueExpression)));if(!t){if("clusterMinSize"in e&&"clusterMaxSize"in e){const{clusterMinSize:t,clusterMaxSize:l}=e;s.legendOptions=new R({showLegend:t!==l})}const t=l.visualVariables||[];l.visualVariables=t.concat([s]),this._hasClusterSizeVariable=!0}}return l}async _loadRenderer(e){const t=[],l=e.clone(),s=await X(l);if(be(l)||Se(l)){const e=(l.classBreakInfos||l.uniqueValueInfos).map((e=>this._fetchSymbol(e.symbol,s).then((t=>{e.symbol=t})).catch((()=>{e.symbol=null}))));Array.prototype.push.apply(t,e)}return t.push(this._fetchSymbol(l.symbol||l.defaultSymbol,l.defaultSymbol?null:s).then((e=>{this._applySymbolToRenderer(l,e,ge(l))})).catch((()=>{this._applySymbolToRenderer(l,null,ge(l))}))),await Promise.allSettled(t),l}_applySymbolToRenderer(e,t,l){l?e.symbol=t:e.defaultSymbol=t}async _fetchSymbol(e,t){if(!e)throw new Error;if("web-style"===e.type){const l=this._webStyleSymbolCache;try{const s=await("2d"===this.view.type?e.fetchCIMSymbol({cache:l}):e.fetchSymbol({cache:l}));return this._getAppliedCloneSymbol(s,t)}catch{throw o.getLogger(this).warn("Fetching web-style failed!"),new Error}}return this._getAppliedCloneSymbol(e,t)}_getAppliedCloneSymbol(e,l){if(!e||!l)return e;const s=e.clone(),r=l&&l.toRgba();return s.type.includes("3d")?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 i of l)"color"===i.type?s.push(i):"size"===i.type?r.push(i):"opacity"===i.type&&n.push(i);const a=[...s,...r,...n];let o,u;if(0===s.length&&be(e)&&e.classBreakInfos&&1===e.classBreakInfos.length){const t=e.classBreakInfos[0];o=t&&t.symbol}if(0===s.length&&ge(e)&&(o=e.symbol),o)if(o.type.includes("3d")){const e=o.symbolLayers.at(0);"water"===e.type?null!=e.color&&(u=e.color):null!=e.material&&null!=e.material.color&&(u=e.material.color)}else o.url||(u=o.color);const c=this.effectList;return(await Promise.all(a.map((async l=>{if(!l.legendOptions||!1!==l.legendOptions.showLegend){const s=ye(e)?l.field:this._getRampTitle(l,t);let r=null;const i="getField"in t?t.getField?.(l.field):null,n=i&&L(i);if("color"===l.type){const e=await B(l,null,n)??[];r={type:"color-ramp",title:s,infos:e,preview:z(e.map((e=>e.color)),{effectList:c,ariaLabel:await qe("previewColorRampAriaLabel")})},this._hasColorRamp||(this._hasColorRamp=e.length>0)}else if("size"===l.type&&"outline"!==l.target)oe.test(l.valueExpression)?this._hasClusterSizeVariable||(this._scaleDrivenSizeVariable=l):(r=await this._getSizeLegendElement(s,l,e,n),this._hasSizeRamp||(this._hasSizeRamp=!(null==r.infos||!r.infos.length)));else if("opacity"===l.type){const e=await B(l,u,n)??[];r={type:"opacity-ramp",title:s,infos:e,preview:z(e.map((e=>e.color)),{effectList:c,ariaLabel:await qe("previewColorRampAriaLabel")})},this._hasOpacityRamp||(this._hasOpacityRamp=e.length>0)}return r&&r.infos?r:null}})))).filter(i)}_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"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;if(be(l)&&(r=l.normalizationField,i="percent-of-total"===l.normalizationType),s="function"==typeof s?null:s,r="function"==typeof r?null:r,Se(l)){const{field2:e,field3:r,fieldDelimiter:i}=l;let n=s&&this._getFieldAlias(s,t);return e&&(n=`<${n}>${i}<${this._getFieldAlias(e,t)}>`,r&&(n=`${n}${i}<${this._getFieldAlias(r,t)}>`)),n}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:null,s=l?.fieldInfos;let r;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));let n=null;const a="featureReduction"in t&&t.featureReduction;a&&(!r&&"popupTemplate"in a&&a.popupTemplate&&a.popupTemplate.fieldInfos&&a.popupTemplate.fieldInfos.some((t=>e?.toLowerCase()===t.fieldName?.toLowerCase()&&(r=t,!0))),"fields"in a&&a.fields&&(n=a.fields.find((t=>t.name?.toLowerCase()===e?.toLowerCase()))));const o=r||i||n;let u=null;return o&&(u=r?.label||i?.alias||n?.alias||"name"in o&&o.name||"fieldName"in o&&o.fieldName||null),u}_isUnclassedRenderer(e){const t=e.visualVariables;let l=!1;return be(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([f()],We.prototype,"children",void 0),e([f({readOnly:!0})],We.prototype,"effectList",null),e([f()],We.prototype,"layerView",void 0),e([f()],We.prototype,"layer",void 0),e([f()],We.prototype,"legendElements",void 0),e([f({readOnly:!0})],We.prototype,"opacity",null),e([f()],We.prototype,"parent",void 0),e([f({readOnly:!0,dependsOn:[]})],We.prototype,"ready",null),e([f()],We.prototype,"hideLayersNotInCurrentView",void 0),e([f()],We.prototype,"keepCacheOnDestroy",void 0),e([f()],We.prototype,"respectLayerVisibility",void 0),e([f({readOnly:!0})],We.prototype,"scale",null),e([f()],We.prototype,"sublayerIds",void 0),e([f({readOnly:!0})],We.prototype,"isScaleDriven",null),e([f()],We.prototype,"title",void 0),e([f({readOnly:!0,dependsOn:["ready"],value:0})],We.prototype,"version",null),e([f()],We.prototype,"view",void 0),We=e([g("esri.widgets.Legend.support.ActiveLayerInfo")],We);const Ge=We;export{Ge as default};
|
package/widgets/Search.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.28/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{_ as e}from"../chunks/tslib.es6.js";import"../intl.js";import{eventKey as t}from"../core/events.js";import{destroyMaybe as s,abortMaybe as r}from"../core/maybe.js";import{watch as i,on as n,initial as o}from"../core/reactiveUtils.js";import{escapeRegExpString as u}from"../core/string.js";import{property as l}from"../core/accessorSupport/decorators/property.js";import"../core/accessorSupport/ensureType.js";import"../core/arrayUtils.js";import"../core/has.js";import{subclass as a}from"../core/accessorSupport/decorators/subclass.js";import c from"./Widget.js";import{css as d}from"./Search/css.js";import h from"./Search/SearchResultRenderer.js";import g from"./Search/SearchViewModel.js";import{globalCss as p}from"./support/globalCss.js";import{legacyIcon as _}from"./support/legacyIcon.js";import{storeNode as m,keepMenuItemWithinView as v,isActivationKey as M}from"./support/widgetUtils.js";import{messageBundle as S}from"./support/decorators/messageBundle.js";import{vmEvent as w}from"./support/decorators/vmEvent.js";import{tsx as I}from"./support/jsxFactory.js";import{substitute as b}from"../intl/substitute.js";const y=/<[a-z/][\s\S]*>/i,f=(e,t)=>{const s=u(t).split(/\s/),r=new RegExp(`(${s.join("|")})`,"gi");return e.replace(r,(e=>`<strong>${e}</strong>`))};let C=class extends c{constructor(e,t){super(e,t),this._activeMenuItemIndex=-1,this._inputNode=null,this._menuItemCount=0,this._sourceMenuButtonNode=null,this._sourceListNode=null,this._suggestionListNode=null,this._searchResultRenderer=new h,this._suggestController=null,this._searchController=null,this._locateFailed=!1,this._container=null,this.activeMenu="none",this.disabled=!1,this.iconClass=d.widgetIcon,this.icon=null,this.messages=null,this.messagesCommon=null,this.viewModel=new g,this._clearActiveMenu=()=>{this.activeMenu="none"},this._removeActiveMenu=e=>{const t=e.relatedTarget;t&&this._container?.contains(t)||this._clearActiveMenu()},this.addHandles([i((()=>this.searchTerm),(e=>{(e&&"warning"===this.activeMenu||!e&&!this.viewModel?.selectedSuggestion?.location)&&this._clearActiveMenu()})),n((()=>this.viewModel?.allSources),"change",(()=>this._watchSourceChanges())),i((()=>this.activeMenu),(()=>this._resetActiveMenuItemIndex()),o),i((()=>this.viewModel?.defaultPopupTemplate),(e=>{e&&(e.content=this._renderSearchResultsContent.bind(this))}),o)])}destroy(){this._cancelSuggest(),this._cancelSearch(),this._searchResultRenderer=s(this._searchResultRenderer)}get displayedSearchTerm(){return`${this.viewModel.searchTerm}`.trim()}get inputId(){return this._buildId("input")}get suggestionsMenuId(){return this._buildId("suggest-menu")}get sourceMenuId(){return this._buildId("source-menu")}get sourceMenuButtonId(){return this._buildId("source-menu-button")}get activeSource(){return this.viewModel?.activeSource}get activeSourceIndex(){return this.viewModel.activeSourceIndex}set activeSourceIndex(e){this.viewModel.activeSourceIndex=e}get allPlaceholder(){return this.viewModel.allPlaceholder}set allPlaceholder(e){this.viewModel.allPlaceholder=e}get allSources(){return this.viewModel.allSources}get autoNavigate(){return this.viewModel.autoNavigate}set autoNavigate(e){this.viewModel.autoNavigate=e}get autoSelect(){return this.viewModel.autoSelect}set autoSelect(e){this.viewModel.autoSelect=e}get defaultSources(){return this.viewModel.defaultSources}get goToOverride(){return this.viewModel.goToOverride}set goToOverride(e){this.viewModel.goToOverride=e}get includeDefaultSources(){return this.viewModel.includeDefaultSources}set includeDefaultSources(e){this.viewModel.includeDefaultSources=e}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get locationEnabled(){return this.viewModel.locationEnabled}set locationEnabled(e){this.viewModel.locationEnabled=e}get maxResults(){return this.viewModel.maxResults}set maxResults(e){this.viewModel.maxResults=e}get maxSuggestions(){return this.viewModel.maxSuggestions}set maxSuggestions(e){this.viewModel.maxSuggestions=e}get minSuggestCharacters(){return this.viewModel.minSuggestCharacters}set minSuggestCharacters(e){this.viewModel.minSuggestCharacters=e}get popupEnabled(){return this.viewModel.popupEnabled}set popupEnabled(e){this.viewModel.popupEnabled=e}get popupTemplate(){return this.viewModel.popupTemplate}set popupTemplate(e){this.viewModel.popupTemplate=e}get portal(){return this.viewModel?.portal}set portal(e){this.viewModel&&(this.viewModel.portal=e)}get resultGraphic(){return this.viewModel.resultGraphic}set resultGraphic(e){this.viewModel.resultGraphic=e}get resultGraphicEnabled(){return this.viewModel.resultGraphicEnabled}set resultGraphicEnabled(e){this.viewModel.resultGraphicEnabled=e}get results(){return this.viewModel.results}get searchAllEnabled(){return this.viewModel.searchAllEnabled}set searchAllEnabled(e){this.viewModel.searchAllEnabled=e}get searchTerm(){return this.viewModel.searchTerm}set searchTerm(e){this.viewModel.searchTerm=e}get selectedResult(){return this.viewModel.selectedResult}get sources(){return this.viewModel.sources}set sources(e){this.viewModel.sources=e}get suggestions(){return this.viewModel.suggestions}get suggestionsEnabled(){return this.viewModel.suggestionsEnabled}set suggestionsEnabled(e){this.viewModel.suggestionsEnabled=e}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}clear(){this.viewModel.clear()}focus(){this._inputNode?.focus(),this.emit("search-focus")}blur(){this._inputNode?.blur(),this.emit("search-blur")}async search(e){this._clearActiveMenu(),this._cancelSuggest(),this._cancelSearch();const t=new AbortController,{signal:s}=t;this._searchController=t;try{const r=await this.viewModel.search(e,{signal:s});if(this._searchController!==t)return;return this.activeMenu=r?.numResults?"none":"warning",this._searchController=null,r}catch(r){if(this._searchController!==t)return;return this._clearActiveMenu(),void(this._searchController=null)}}async suggest(e){this._cancelSuggest();const t=new AbortController,{signal:s}=t;this._suggestController=t;try{const r=await this.viewModel.suggest(e,null,{signal:s});if(this._suggestController!==t)return;return this._suggestController=null,r?.numResults&&this._openSuggestionMenu(),this._scrollToTopSuggestion(),r}catch(r){return this._suggestController!==t||(this._suggestController=null),null}}render(){const{state:e}=this.viewModel,t={[p.disabled]:"disabled"===e,[p.widgetDisabled]:this.disabled};return I("div",{class:this.classes(d.base,p.widget,t)},"loading"===e?this._renderLoader():this._renderContainer())}_renderSubmitButton(){const{messages:e,disabled:t}=this;return I("button",{"aria-label":e.searchButtonTitle,bind:this,disabled:t,class:this.classes(d.submitButton,p.widgetButton),key:"esri-search__submit-button",onclick:this._handleSearchButtonClick,title:e.searchButtonTitle,type:"button"},I("span",{"aria-hidden":"true",class:_.search}))}_renderWarningMenu(){return I("div",{key:"esri-search__error-menu",class:this.classes(p.menu,d.warningMenu)},I("div",{class:d.warningMenuBody},this._renderWarning()))}_renderSourceMenuButton(){const{messages:e,activeMenu:t,sourceMenuId:s,sourceMenuButtonId:r,disabled:i}=this,{activeSourceIndex:n,allSources:o}=this.viewModel;return o.length>1?I("button",{id:r,key:"esri-search__source-menu-button",bind:this,disabled:i,"aria-label":e.searchIn,title:e.searchIn,"aria-haspopup":"true","aria-expanded":("source"===t).toString(),"aria-controls":s,class:this.classes(d.sourcesButton,p.widgetButton),onclick:this._handleSourcesMenuToggleClick,onfocus:this._handleSourcesMenuToggleFocus,afterCreate:m,"data-node-ref":"_sourceMenuButtonNode",type:"button"},I("span",{"aria-hidden":"true",class:this.classes(_.downArrow,d.sourcesButtonDown)}),I("span",{"aria-hidden":"true",class:this.classes(_.upArrow,d.sourcesButtonUp)}),I("span",{class:d.sourceName},this._getSourceName(n))):null}_renderSourcesList(){const{allSources:e,searchAllEnabled:t}=this.viewModel,{_activeMenuItemIndex:s,activeMenu:r,sourceMenuId:i,sourceMenuButtonId:n}=this,o="source"===r&&s>-1?this._buildId("source-item",s):null;return e.length>1?I("ul",{"aria-activedescendant":o,"aria-labelledby":n,id:i,role:"menu",bind:this,afterCreate:m,onkeydown:this._handleSourceMenuKeydown,onkeyup:this._handleSourceMenuKeyup,"data-node-ref":"_sourceListNode",class:p.menuList,tabIndex:-1},t?this._renderSource(g.ALL_INDEX):null,e.map(((e,t)=>this._renderSource(t))).toArray()):null}_renderSourcesMenu(){const{allSources:e}=this.viewModel;return e.length>1?I("div",{key:"esri-search__source-menu",class:this.classes(p.menu,d.sourcesMenu)},this._renderSourcesList()):null}_renderLoader(){const{messages:e,messagesCommon:t,disabled:s}=this;return I("div",{class:p.loader,key:"base-loader",tabIndex:s?-1:void 0},I("span",{"aria-hidden":"true",class:p.loaderAnimation}),I("span",{class:_.fontFallbackText},e.searchButtonTitle),I("span",{class:p.loaderText},t.loading))}_renderContainer(){const{allSources:e,state:t}=this.viewModel,{activeMenu:s}=this,r={[d.hasMultipleSources]:e.length>1,[d.isLoading]:"loading"===t,[d.isSearching]:"searching"===t,[d.showWarning]:"warning"===s,[d.showSources]:"source"===s,[d.showSuggestions]:"suggestion"===s};return I("div",{tabIndex:-1,afterCreate:e=>{this._container=e,e.addEventListener("focusout",this._removeActiveMenu)},afterRemoved:e=>{e.removeEventListener("focusout",this._removeActiveMenu)},class:this.classes(r,d.container),key:"base-container"},this._renderSourceMenuButton(),this._renderSourcesMenu(),this._renderInputContainer(),this._renderSubmitButton(),this._renderWarningMenu())}_renderClearButton(){return this.searchTerm?I("button",{bind:this,disabled:this.disabled,class:this.classes(d.clearButton,p.button),key:"esri-search__clear-button",onclick:this._handleClearButtonClick,onfocus:this._clearActiveMenu,title:this.messages.clearButtonTitle,type:"button"},I("span",{"aria-hidden":"true",class:_.close})):null}_renderLocationGroup(){const{messages:e,locationEnabled:t,displayedSearchTerm:s}=this,r=t&&!s,i="suggestion"===this.activeMenu&&0===this._activeMenuItemIndex;return r?I("ul",{role:"group",key:"esri-search__suggestion-list-current-location",class:this.classes(p.menuList,d.suggestionList,d.suggestionListCurrentLocation)},I("li",{bind:this,"data-current-location-item":!0,onclick:this._handleUseCurrentLocationClick,id:this._buildId("suggestion-item",0),"aria-selected":("suggestion"===this.activeMenu&&0===this._activeMenuItemIndex).toString(),role:"option",class:this.classes(p.menuItem,i?p.menuItemFocus:null)},I("span",{"aria-hidden":"true",class:_.locateCircled})," ",e.useCurrentLocation)):null}_renderInput(){const{activeMenu:e,locationEnabled:t,displayedSearchTerm:s,messages:r,suggestionsMenuId:i,inputId:n,_activeMenuItemIndex:o,disabled:u}=this,{maxInputLength:l,placeholder:a,searchTerm:c,suggestionCount:h}=this.viewModel,g=!(!(t&&!s)&&!h),_="suggestion"===e&&o>-1?this._buildId("suggestion-item",o):null;return I("input",{"aria-activedescendant":_,"aria-autocomplete":"list","aria-expanded":(g&&"suggestion"===e).toString(),"aria-controls":g?i:null,"aria-haspopup":"listbox","aria-label":r.searchButtonTitle,bind:this,disabled:u,placeholder:a,maxlength:l,autocomplete:"off",type:"text",class:this.classes(p.input,d.input),value:c,id:n,role:"combobox",onkeyup:this._handleInputKeyup,onclick:this._openSuggestionMenu,oninput:this._handleInputPaste,onpaste:this._handleInputPaste,afterCreate:m,"data-node-ref":"_inputNode",onfocus:this.focus,onblur:this.blur,title:c?"":a})}_renderForm(){return I("form",{key:"esri-search__form",bind:this,disabled:this.disabled,class:d.form,onsubmit:this._formSubmit,role:"search"},this._renderInput())}_renderSuggestList(e){const{sourceIndex:t}=e,{results:s}=e,r=s?.length;return r?I("ul",{role:"group",key:`esri-search__suggestion-list-${t}`,class:this.classes(p.menuList,d.suggestionList)},s?.map((e=>this._renderSuggestion(e,this._menuItemCount++)))):null}_renderSuggestionsGroup(){const{suggestions:e}=this.viewModel;return e?e.map((e=>[this._renderSuggestionHeader(e),this._renderSuggestList(e)])):[]}_renderSuggestionsMenu(){const{displayedSearchTerm:e,locationEnabled:t,suggestionsMenuId:s,inputId:r}=this,{suggestionCount:i}=this.viewModel,n=t&&!e||i;return this._menuItemCount=0,n?I("div",{id:s,key:"esri-search__suggestions-menu",class:this.classes(p.menu,d.suggestionsMenu),role:"listbox","aria-labelledby":r,bind:this,afterCreate:m,"data-node-ref":"_suggestionListNode"},this._renderLocationGroup(),this._renderSuggestionsGroup()):null}_renderInputContainer(){return I("div",{key:"esri-search__input-container",class:d.inputContainer},this._renderForm(),this._renderSuggestionsMenu(),this._renderClearButton())}_renderSuggestionHeader(e){const{allSources:t,activeSourceIndex:s}=this.viewModel,{sourceIndex:r}=e,i=e.results?.length,n=t.length>1&&s===g.ALL_INDEX;return i&&n?I("div",{key:`esri-search__suggestion-header-${r}`,class:p.menuHeader},this._getSourceName(r)):null}_renderSuggestion(e,t){const{_activeMenuItemIndex:s,viewModel:{searchTerm:r}}=this;if(!r)return;const i="suggestion"===this.activeMenu&&s===t;return I("li",{bind:this,id:this._buildId("suggestion-item",t),"aria-selected":("suggestion"===this.activeMenu&&this._activeMenuItemIndex===t).toString(),onclick:this._handleSuggestionClick,key:`esri-search__suggestion_${t}`,"data-suggestion":e,role:"option",innerHTML:this._getSuggestResultHTML(e.text,r),class:this.classes(p.menuItem,i?p.menuItemFocus:null)})}_renderSource(e){const{activeSourceIndex:t,searchAllEnabled:s}=this.viewModel,r={[p.menuItemActive]:e===t,[p.menuItemFocus]:"source"===this.activeMenu&&e===(s?this._activeMenuItemIndex-1:this._activeMenuItemIndex)},i=s?e+1:e;return I("li",{bind:this,key:`esri-search__source-${e}`,id:this._buildId("source-item",i),"aria-checked":(e===t).toString(),onclick:this._handleSourceClick,"data-source-index":e,role:"menuitemradio",class:this.classes(d.source,p.menuItem,r)},this._getSourceName(e))}_renderNoResultsWarning(e){const{messages:t}=this,s=e?b(t.noResultsFoundForValue,{value:`"${e}"`}):t.noResultsFound;return I("div",{key:"esri-search__no_results"},I("div",{class:d.warningMenuHeader},t.noResults),I("div",{class:d.warningMenuText},s))}_renderEmptySearchWarning(){const{messages:e}=this;return I("div",{key:"esri-search__empty-search"},I("span",{"aria-hidden":"true",class:_.noticeTriangle}),I("span",{class:d.noValueText},e.emptyValue))}_renderLocateWarning(){const{messages:e}=this;return I("div",{key:"esri-search__locate-error"},I("span",{"aria-hidden":"true",class:_.noticeTriangle}),I("span",{class:d.noValueText},e.locateError))}_renderWarning(){const{displayedSearchTerm:e,_locateFailed:t}=this,{viewModel:s}=this;return t?this._renderLocateWarning():s.selectedSuggestion?.location||e?this._renderNoResultsWarning(e):this._renderEmptySearchWarning()}_resetActiveMenuItemIndex(){this._activeMenuItemIndex=-1}_buildId(e,t){return`${this.id}-${e}${void 0===t?"":`-${t}`}`}_watchSourceChanges(){const{viewModel:{allSources:e}}=this,t="sources";this.removeHandles(t),e.forEach((e=>this.addHandles(i((()=>e.name),(()=>this.scheduleRender())),t)))}_handleSourcesMenuToggleFocus(){"source"!==this.activeMenu&&this._clearActiveMenu()}_handleSourcesMenuToggleClick(){const e="source"===this.activeMenu;this.activeMenu=e?"none":"source",this.renderNow(),"source"===this.activeMenu&&this._sourceListNode?.focus()}_handleClearButtonClick(){this.viewModel.clear(),this._focus()}_handleSearchButtonClick(){this.search()}_handleSuggestionClick(e){const t=x(e.currentTarget);t&&(this._focus(),this.search(t))}_handleUseCurrentLocationClick(){this._useCurrentLocation()}_useCurrentLocation(){this._focus("none"),this._cancelSuggest(),this._cancelSearch();const e=new AbortController,{signal:t}=e;this._searchController=e;(async()=>{try{const e=await this.viewModel.searchNearby({signal:t});this.activeMenu=e?.numResults?"none":"warning"}catch(e){this._locateFailed=!0,this.activeMenu="warning"}finally{this._searchController=null}})()}_handleSourceClick(e){this._setSourceFromMenuItem(e.currentTarget)}_setSourceFromMenuItem(e){if(!e)return;const t=T(e);null!=t&&(this.viewModel.activeSourceIndex=t,this._clearActiveMenu(),this._sourceMenuButtonNode?.focus())}_cancelSuggest(){this._suggestController=r(this._suggestController)}_cancelSearch(){this._searchController=r(this._searchController),this._locateFailed=!1}_handleInputKeyup(e){const s=t(e);if(e.ctrlKey||e.metaKey||"Copy"===s||"ArrowLeft"===s||"ArrowRight"===s||"Shift"===s)return;if("Tab"===s||"Escape"===s||e.shiftKey&&"Tab"===s)return this._cancelSuggest(),void("Escape"===s&&this._clearActiveMenu());const r="Home"===s||"End"===s||"ArrowUp"===s||"ArrowDown"===s;if("Enter"===s&&this._activeMenuItemIndex<0)return void this._cancelSuggest();const i=this._suggestionListNode?.getElementsByTagName("li");if(i?.length){if("suggestion"!==this.activeMenu&&this._openSuggestionMenu(),r)return e.preventDefault(),this._cancelSuggest(),void this._handleItemNavigation(s,i,this._suggestionListNode);const t=i[this._activeMenuItemIndex];if("Enter"===s&&t){const e=x(t);return void(e?(this._focus(),this.search(e)):E(t)&&this._useCurrentLocation())}}this.viewModel.searchTerm&&this.suggest()}_handleItemNavigation(e,t,s){const r=this._activeMenuItemIndex;"Home"===e&&(this._activeMenuItemIndex=0),"End"===e&&(this._activeMenuItemIndex=t.length-1),"ArrowUp"===e&&(this._activeMenuItemIndex=this._activeMenuItemIndex<=0?t.length-1:this._activeMenuItemIndex-1),"ArrowDown"===e&&(this._activeMenuItemIndex=this._activeMenuItemIndex===t.length-1?0:this._activeMenuItemIndex+1),r!==this._activeMenuItemIndex&&s&&v(t[this._activeMenuItemIndex],s)}_scrollToTopSuggestion(){this._suggestionListNode&&(this._suggestionListNode.scrollTop=0)}_openSuggestionMenu(){this.activeMenu="suggestion"}_handleInputPaste(e){const t=e.target;this.viewModel.searchTerm!==t.value&&(this.viewModel.searchTerm=t.value),this.viewModel.searchTerm&&this.suggest()}_handleSourceMenuKeydown(e){const s=t(e);if(M(s)){e.preventDefault();const t=this._sourceListNode?.getElementsByTagName("li"),s=t?.[this._activeMenuItemIndex];this._setSourceFromMenuItem(s)}else"ArrowUp"!==s&&"ArrowDown"!==s&&"End"!==s&&"Home"!==s||e.preventDefault()}_handleSourceMenuKeyup(e){const s=t(e),r="ArrowUp"===s||"ArrowDown"===s||"End"===s||"Home"===s;if(r&&e.preventDefault(),"Escape"===s)return this._clearActiveMenu(),void this._sourceMenuButtonNode?.focus();const i=this._sourceListNode?.getElementsByTagName("li");return i&&0!==i.length&&r?("source"!==this.activeMenu&&(this.activeMenu="source"),void this._handleItemNavigation(s,i,this._sourceListNode?.parentElement)):void 0}_focus(e){this.focus(),e&&(this.activeMenu=e)}_formSubmit(e){e.preventDefault(),-1===this._activeMenuItemIndex&&this.search()}_getSourceName(e){const{messages:t}=this,s=this.viewModel,{allSources:r}=s,i=r.at(e);return e===g.ALL_INDEX?t.all:i&&i.name||t.untitledSource}_getSuggestResultHTML(e,t){return e?y.test(e)?e:f(e,t):this.messages.untitledResult}_renderSearchResultsContent(){return this._searchResultRenderer.showMoreResultsOpen=!1,this._searchResultRenderer.viewModel=this.viewModel,this._searchResultRenderer}};function x(e){return e?.["data-suggestion"]}function T(e){return e?.["data-source-index"]}function E(e){return!!e?.["data-current-location-item"]}e([l()],C.prototype,"_activeMenuItemIndex",void 0),e([l()],C.prototype,"displayedSearchTerm",null),e([l({readOnly:!0})],C.prototype,"inputId",null),e([l({readOnly:!0})],C.prototype,"suggestionsMenuId",null),e([l({readOnly:!0})],C.prototype,"sourceMenuId",null),e([l({readOnly:!0})],C.prototype,"sourceMenuButtonId",null),e([l()],C.prototype,"activeMenu",void 0),e([l({readOnly:!0})],C.prototype,"activeSource",null),e([l()],C.prototype,"activeSourceIndex",null),e([l()],C.prototype,"allPlaceholder",null),e([l({readOnly:!0})],C.prototype,"allSources",null),e([l()],C.prototype,"autoNavigate",null),e([l()],C.prototype,"autoSelect",null),e([l({readOnly:!0})],C.prototype,"defaultSources",null),e([l()],C.prototype,"disabled",void 0),e([l()],C.prototype,"goToOverride",null),e([l()],C.prototype,"iconClass",void 0),e([l()],C.prototype,"icon",void 0),e([l()],C.prototype,"includeDefaultSources",null),e([l()],C.prototype,"label",null),e([l()],C.prototype,"locationEnabled",null),e([l()],C.prototype,"maxResults",null),e([l()],C.prototype,"maxSuggestions",null),e([l(),S("esri/widgets/Search/t9n/Search")],C.prototype,"messages",void 0),e([l(),S("esri/t9n/common")],C.prototype,"messagesCommon",void 0),e([l()],C.prototype,"minSuggestCharacters",null),e([l()],C.prototype,"popupEnabled",null),e([l()],C.prototype,"popupTemplate",null),e([l()],C.prototype,"portal",null),e([l()],C.prototype,"resultGraphic",null),e([l()],C.prototype,"resultGraphicEnabled",null),e([l({readOnly:!0})],C.prototype,"results",null),e([l()],C.prototype,"searchAllEnabled",null),e([l()],C.prototype,"searchTerm",null),e([l({readOnly:!0})],C.prototype,"selectedResult",null),e([l()],C.prototype,"sources",null),e([l({readOnly:!0})],C.prototype,"suggestions",null),e([l()],C.prototype,"suggestionsEnabled",null),e([l()],C.prototype,"view",null),e([w(["search-complete","search-clear","search-start","select-result","suggest-start","suggest-complete"]),l({type:g})],C.prototype,"viewModel",void 0),C=e([a("esri.widgets.Search")],C);const L=C;export{L as default};
|
|
5
|
+
import{_ as e}from"../chunks/tslib.es6.js";import"../intl.js";import{eventKey as t}from"../core/events.js";import{destroyMaybe as s,abortMaybe as r}from"../core/maybe.js";import{watch as i,on as n,initial as o}from"../core/reactiveUtils.js";import{escapeRegExpString as u}from"../core/string.js";import{property as l}from"../core/accessorSupport/decorators/property.js";import"../core/accessorSupport/ensureType.js";import"../core/arrayUtils.js";import"../core/has.js";import{subclass as a}from"../core/accessorSupport/decorators/subclass.js";import c from"./Widget.js";import{css as d}from"./Search/css.js";import h from"./Search/SearchResultRenderer.js";import g from"./Search/SearchViewModel.js";import{globalCss as p}from"./support/globalCss.js";import{legacyIcon as _}from"./support/legacyIcon.js";import{storeNode as m,keepMenuItemWithinView as v,isActivationKey as M}from"./support/widgetUtils.js";import{messageBundle as S}from"./support/decorators/messageBundle.js";import{vmEvent as w}from"./support/decorators/vmEvent.js";import{tsx as I}from"./support/jsxFactory.js";import{substitute as b}from"../intl/substitute.js";const y=/<[a-z/][\s\S]*>/i,f=(e,t)=>{const s=u(t).split(/\s/),r=new RegExp(`(${s.join("|")})`,"gi");return e.replace(r,(e=>`<strong>${e}</strong>`))};let C=class extends c{constructor(e,t){super(e,t),this._activeMenuItemIndex=-1,this._inputNode=null,this._menuItemCount=0,this._sourceMenuButtonNode=null,this._sourceListNode=null,this._suggestionListNode=null,this._searchResultRenderer=new h,this._suggestController=null,this._searchController=null,this._locateFailed=!1,this._container=null,this.activeMenu="none",this.disabled=!1,this.iconClass=d.widgetIcon,this.icon=null,this.messages=null,this.messagesCommon=null,this.viewModel=new g,this._clearActiveMenu=()=>{this.activeMenu="none"},this._removeActiveMenu=e=>{const t=e.relatedTarget;t&&this._container?.contains(t)||this._clearActiveMenu()},this.addHandles([i((()=>this.searchTerm),(e=>{(e&&"warning"===this.activeMenu||!e&&!this.viewModel?.selectedSuggestion?.location)&&this._clearActiveMenu()})),n((()=>this.viewModel?.allSources),"change",(()=>this._watchSourceChanges())),i((()=>this.activeMenu),(()=>this._resetActiveMenuItemIndex()),o),i((()=>this.viewModel?.defaultPopupTemplate),(e=>{e&&(e.content=this._renderSearchResultsContent.bind(this))}),o)])}destroy(){this._cancelSuggest(),this._cancelSearch(),this._searchResultRenderer=s(this._searchResultRenderer)}get displayedSearchTerm(){return`${this.viewModel.searchTerm}`.trim()}get inputId(){return this._buildId("input")}get suggestionsMenuId(){return this._buildId("suggest-menu")}get sourceMenuId(){return this._buildId("source-menu")}get sourceMenuButtonId(){return this._buildId("source-menu-button")}get activeSource(){return this.viewModel?.activeSource}get activeSourceIndex(){return this.viewModel.activeSourceIndex}set activeSourceIndex(e){this.viewModel.activeSourceIndex=e}get allPlaceholder(){return this.viewModel.allPlaceholder}set allPlaceholder(e){this.viewModel.allPlaceholder=e}get allSources(){return this.viewModel.allSources}get autoNavigate(){return this.viewModel.autoNavigate}set autoNavigate(e){this.viewModel.autoNavigate=e}get autoSelect(){return this.viewModel.autoSelect}set autoSelect(e){this.viewModel.autoSelect=e}get defaultSources(){return this.viewModel.defaultSources}get goToOverride(){return this.viewModel.goToOverride}set goToOverride(e){this.viewModel.goToOverride=e}get includeDefaultSources(){return this.viewModel.includeDefaultSources}set includeDefaultSources(e){this.viewModel.includeDefaultSources=e}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get locationEnabled(){return this.viewModel.locationEnabled}set locationEnabled(e){this.viewModel.locationEnabled=e}get maxResults(){return this.viewModel.maxResults}set maxResults(e){this.viewModel.maxResults=e}get maxSuggestions(){return this.viewModel.maxSuggestions}set maxSuggestions(e){this.viewModel.maxSuggestions=e}get minSuggestCharacters(){return this.viewModel.minSuggestCharacters}set minSuggestCharacters(e){this.viewModel.minSuggestCharacters=e}get popupEnabled(){return this.viewModel.popupEnabled}set popupEnabled(e){this.viewModel.popupEnabled=e}get popupTemplate(){return this.viewModel.popupTemplate}set popupTemplate(e){this.viewModel.popupTemplate=e}get portal(){return this.viewModel?.portal}set portal(e){this.viewModel&&(this.viewModel.portal=e)}get resultGraphic(){return this.viewModel.resultGraphic}set resultGraphic(e){this.viewModel.resultGraphic=e}get resultGraphicEnabled(){return this.viewModel.resultGraphicEnabled}set resultGraphicEnabled(e){this.viewModel.resultGraphicEnabled=e}get results(){return this.viewModel.results}get searchAllEnabled(){return this.viewModel.searchAllEnabled}set searchAllEnabled(e){this.viewModel.searchAllEnabled=e}get searchTerm(){return this.viewModel.searchTerm}set searchTerm(e){this.viewModel.searchTerm=e}get selectedResult(){return this.viewModel.selectedResult}get sources(){return this.viewModel.sources}set sources(e){this.viewModel.sources=e}get suggestions(){return this.viewModel.suggestions}get suggestionsEnabled(){return this.viewModel.suggestionsEnabled}set suggestionsEnabled(e){this.viewModel.suggestionsEnabled=e}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}clear(){this.viewModel.clear()}focus(){this._inputNode?.focus(),this.emit("search-focus")}blur(){this._inputNode?.blur(),this.emit("search-blur")}async search(e){this._clearActiveMenu(),this._cancelSuggest(),this._cancelSearch();const t=new AbortController,{signal:s}=t;this._searchController=t;try{const r=await this.viewModel.search(e,{signal:s});if(this._searchController!==t)return;return this.activeMenu=r?.numResults?"none":"warning",this._searchController=null,r}catch(r){if(this._searchController!==t)return;return this._clearActiveMenu(),void(this._searchController=null)}}async suggest(e){this._cancelSuggest();const t=new AbortController,{signal:s}=t;this._suggestController=t;try{const r=await this.viewModel.suggest(e,null,{signal:s});if(this._suggestController!==t)return;return this._suggestController=null,r?.numResults&&this._openSuggestionMenu(),this._scrollToTopSuggestion(),r}catch(r){return this._suggestController!==t||(this._suggestController=null),null}}render(){const{state:e}=this.viewModel,t={[p.disabled]:"disabled"===e,[p.widgetDisabled]:this.disabled};return I("div",{class:this.classes(d.base,p.widget,t)},"loading"===e?this._renderLoader():this._renderContainer())}_renderSubmitButton(){const{messages:e,disabled:t}=this;return I("button",{"aria-label":e.searchButtonTitle,bind:this,disabled:t,class:this.classes(d.submitButton,p.widgetButton),key:"esri-search__submit-button",onclick:this._handleSearchButtonClick,title:e.searchButtonTitle,type:"button"},I("span",{"aria-hidden":"true",class:_.search}))}_renderWarningMenu(){return I("div",{key:"esri-search__error-menu",class:this.classes(p.menu,d.warningMenu)},I("div",{class:d.warningMenuBody},this._renderWarning()))}_renderSourceMenuButton(){const{messages:e,activeMenu:t,sourceMenuId:s,sourceMenuButtonId:r,disabled:i}=this,{activeSourceIndex:n,allSources:o}=this.viewModel;return o.length>1?I("button",{id:r,key:"esri-search__source-menu-button",bind:this,disabled:i,"aria-label":e.searchIn,title:e.searchIn,"aria-haspopup":"true","aria-expanded":("source"===t).toString(),"aria-controls":s,class:this.classes(d.sourcesButton,p.widgetButton),onclick:this._handleSourcesMenuToggleClick,onfocus:this._handleSourcesMenuToggleFocus,afterCreate:m,"data-node-ref":"_sourceMenuButtonNode",type:"button"},I("span",{"aria-hidden":"true",class:this.classes(_.downArrow,d.sourcesButtonDown)}),I("span",{"aria-hidden":"true",class:this.classes(_.upArrow,d.sourcesButtonUp)}),I("span",{class:d.sourceName},this._getSourceName(n))):null}_renderSourcesList(){const{allSources:e,searchAllEnabled:t}=this.viewModel,{_activeMenuItemIndex:s,activeMenu:r,sourceMenuId:i,sourceMenuButtonId:n}=this,o="source"===r&&s>-1?this._buildId("source-item",s):null;return e.length>1?I("ul",{"aria-activedescendant":o,"aria-labelledby":n,id:i,role:"menu",bind:this,afterCreate:m,onkeydown:this._handleSourceMenuKeydown,onkeyup:this._handleSourceMenuKeyup,"data-node-ref":"_sourceListNode",class:p.menuList,tabIndex:-1},t?this._renderSource(g.ALL_INDEX):null,e.map(((e,t)=>this._renderSource(t))).toArray()):null}_renderSourcesMenu(){const{allSources:e}=this.viewModel;return e.length>1?I("div",{key:"esri-search__source-menu",class:this.classes(p.menu,d.sourcesMenu)},this._renderSourcesList()):null}_renderLoader(){const{messages:e,messagesCommon:t,disabled:s}=this;return I("div",{class:p.loader,key:"base-loader",tabIndex:s?-1:void 0},I("span",{"aria-hidden":"true",class:p.loaderAnimation}),I("span",{class:_.fontFallbackText},e.searchButtonTitle),I("span",{class:p.loaderText},t.loading))}_renderContainer(){const{allSources:e,state:t}=this.viewModel,{activeMenu:s}=this,r={[d.hasMultipleSources]:e.length>1,[d.isLoading]:"loading"===t,[d.isSearching]:"searching"===t,[d.showWarning]:"warning"===s,[d.showSources]:"source"===s,[d.showSuggestions]:"suggestion"===s};return I("div",{tabIndex:-1,afterCreate:e=>{this._container=e,e.addEventListener("focusout",this._removeActiveMenu)},afterRemoved:e=>{e.removeEventListener("focusout",this._removeActiveMenu)},class:this.classes(r,d.container),key:"base-container"},this._renderSourceMenuButton(),this._renderSourcesMenu(),this._renderInputContainer(),this._renderSubmitButton(),this._renderWarningMenu())}_renderClearButton(){return this.searchTerm?I("button",{bind:this,disabled:this.disabled,class:this.classes(d.clearButton,p.widgetButton),key:"esri-search__clear-button",onclick:this._handleClearButtonClick,onfocus:this._clearActiveMenu,title:this.messages.clearButtonTitle,type:"button"},I("span",{"aria-hidden":"true",class:_.close})):null}_renderLocationGroup(){const{messages:e,locationEnabled:t,displayedSearchTerm:s}=this,r=t&&!s,i="suggestion"===this.activeMenu&&0===this._activeMenuItemIndex;return r?I("ul",{role:"group",key:"esri-search__suggestion-list-current-location",class:this.classes(p.menuList,d.suggestionList,d.suggestionListCurrentLocation)},I("li",{bind:this,"data-current-location-item":!0,onclick:this._handleUseCurrentLocationClick,id:this._buildId("suggestion-item",0),"aria-selected":("suggestion"===this.activeMenu&&0===this._activeMenuItemIndex).toString(),role:"option",class:this.classes(p.menuItem,i?p.menuItemFocus:null)},I("span",{"aria-hidden":"true",class:_.locateCircled})," ",e.useCurrentLocation)):null}_renderInput(){const{activeMenu:e,locationEnabled:t,displayedSearchTerm:s,messages:r,suggestionsMenuId:i,inputId:n,_activeMenuItemIndex:o,disabled:u}=this,{maxInputLength:l,placeholder:a,searchTerm:c,suggestionCount:h}=this.viewModel,g=!(!(t&&!s)&&!h),_="suggestion"===e&&o>-1?this._buildId("suggestion-item",o):null;return I("input",{"aria-activedescendant":_,"aria-autocomplete":"list","aria-expanded":(g&&"suggestion"===e).toString(),"aria-controls":g?i:null,"aria-haspopup":"listbox","aria-label":r.searchButtonTitle,bind:this,disabled:u,placeholder:a,maxlength:l,autocomplete:"off",type:"text",class:this.classes(p.input,d.input),value:c,id:n,role:"combobox",onkeyup:this._handleInputKeyup,onclick:this._openSuggestionMenu,oninput:this._handleInputPaste,onpaste:this._handleInputPaste,afterCreate:m,"data-node-ref":"_inputNode",onfocus:this.focus,onblur:this.blur,title:c?"":a})}_renderForm(){return I("form",{key:"esri-search__form",bind:this,disabled:this.disabled,class:d.form,onsubmit:this._formSubmit,role:"search"},this._renderInput())}_renderSuggestList(e){const{sourceIndex:t}=e,{results:s}=e,r=s?.length;return r?I("ul",{role:"group",key:`esri-search__suggestion-list-${t}`,class:this.classes(p.menuList,d.suggestionList)},s?.map((e=>this._renderSuggestion(e,this._menuItemCount++)))):null}_renderSuggestionsGroup(){const{suggestions:e}=this.viewModel;return e?e.map((e=>[this._renderSuggestionHeader(e),this._renderSuggestList(e)])):[]}_renderSuggestionsMenu(){const{displayedSearchTerm:e,locationEnabled:t,suggestionsMenuId:s,inputId:r}=this,{suggestionCount:i}=this.viewModel,n=t&&!e||i;return this._menuItemCount=0,n?I("div",{id:s,key:"esri-search__suggestions-menu",class:this.classes(p.menu,d.suggestionsMenu),role:"listbox","aria-labelledby":r,bind:this,afterCreate:m,"data-node-ref":"_suggestionListNode"},this._renderLocationGroup(),this._renderSuggestionsGroup()):null}_renderInputContainer(){return I("div",{key:"esri-search__input-container",class:d.inputContainer},this._renderForm(),this._renderSuggestionsMenu(),this._renderClearButton())}_renderSuggestionHeader(e){const{allSources:t,activeSourceIndex:s}=this.viewModel,{sourceIndex:r}=e,i=e.results?.length,n=t.length>1&&s===g.ALL_INDEX;return i&&n?I("div",{key:`esri-search__suggestion-header-${r}`,class:p.menuHeader},this._getSourceName(r)):null}_renderSuggestion(e,t){const{_activeMenuItemIndex:s,viewModel:{searchTerm:r}}=this;if(!r)return;const i="suggestion"===this.activeMenu&&s===t;return I("li",{bind:this,id:this._buildId("suggestion-item",t),"aria-selected":("suggestion"===this.activeMenu&&this._activeMenuItemIndex===t).toString(),onclick:this._handleSuggestionClick,key:`esri-search__suggestion_${t}`,"data-suggestion":e,role:"option",innerHTML:this._getSuggestResultHTML(e.text,r),class:this.classes(p.menuItem,i?p.menuItemFocus:null)})}_renderSource(e){const{activeSourceIndex:t,searchAllEnabled:s}=this.viewModel,r={[p.menuItemActive]:e===t,[p.menuItemFocus]:"source"===this.activeMenu&&e===(s?this._activeMenuItemIndex-1:this._activeMenuItemIndex)},i=s?e+1:e;return I("li",{bind:this,key:`esri-search__source-${e}`,id:this._buildId("source-item",i),"aria-checked":(e===t).toString(),onclick:this._handleSourceClick,"data-source-index":e,role:"menuitemradio",class:this.classes(d.source,p.menuItem,r)},this._getSourceName(e))}_renderNoResultsWarning(e){const{messages:t}=this,s=e?b(t.noResultsFoundForValue,{value:`"${e}"`}):t.noResultsFound;return I("div",{key:"esri-search__no_results"},I("div",{class:d.warningMenuHeader},t.noResults),I("div",{class:d.warningMenuText},s))}_renderEmptySearchWarning(){const{messages:e}=this;return I("div",{key:"esri-search__empty-search"},I("span",{"aria-hidden":"true",class:_.noticeTriangle}),I("span",{class:d.noValueText},e.emptyValue))}_renderLocateWarning(){const{messages:e}=this;return I("div",{key:"esri-search__locate-error"},I("span",{"aria-hidden":"true",class:_.noticeTriangle}),I("span",{class:d.noValueText},e.locateError))}_renderWarning(){const{displayedSearchTerm:e,_locateFailed:t}=this,{viewModel:s}=this;return t?this._renderLocateWarning():s.selectedSuggestion?.location||e?this._renderNoResultsWarning(e):this._renderEmptySearchWarning()}_resetActiveMenuItemIndex(){this._activeMenuItemIndex=-1}_buildId(e,t){return`${this.id}-${e}${void 0===t?"":`-${t}`}`}_watchSourceChanges(){const{viewModel:{allSources:e}}=this,t="sources";this.removeHandles(t),e.forEach((e=>this.addHandles(i((()=>e.name),(()=>this.scheduleRender())),t)))}_handleSourcesMenuToggleFocus(){"source"!==this.activeMenu&&this._clearActiveMenu()}_handleSourcesMenuToggleClick(){const e="source"===this.activeMenu;this.activeMenu=e?"none":"source",this.renderNow(),"source"===this.activeMenu&&this._sourceListNode?.focus()}_handleClearButtonClick(){this.viewModel.clear(),this._focus()}_handleSearchButtonClick(){this.search()}_handleSuggestionClick(e){const t=x(e.currentTarget);t&&(this._focus(),this.search(t))}_handleUseCurrentLocationClick(){this._useCurrentLocation()}_useCurrentLocation(){this._focus("none"),this._cancelSuggest(),this._cancelSearch();const e=new AbortController,{signal:t}=e;this._searchController=e;(async()=>{try{const e=await this.viewModel.searchNearby({signal:t});this.activeMenu=e?.numResults?"none":"warning"}catch(e){this._locateFailed=!0,this.activeMenu="warning"}finally{this._searchController=null}})()}_handleSourceClick(e){this._setSourceFromMenuItem(e.currentTarget)}_setSourceFromMenuItem(e){if(!e)return;const t=T(e);null!=t&&(this.viewModel.activeSourceIndex=t,this._clearActiveMenu(),this._sourceMenuButtonNode?.focus())}_cancelSuggest(){this._suggestController=r(this._suggestController)}_cancelSearch(){this._searchController=r(this._searchController),this._locateFailed=!1}_handleInputKeyup(e){const s=t(e);if(e.ctrlKey||e.metaKey||"Copy"===s||"ArrowLeft"===s||"ArrowRight"===s||"Shift"===s)return;if("Tab"===s||"Escape"===s||e.shiftKey&&"Tab"===s)return this._cancelSuggest(),void("Escape"===s&&this._clearActiveMenu());const r="Home"===s||"End"===s||"ArrowUp"===s||"ArrowDown"===s;if("Enter"===s&&this._activeMenuItemIndex<0)return void this._cancelSuggest();const i=this._suggestionListNode?.getElementsByTagName("li");if(i?.length){if("suggestion"!==this.activeMenu&&this._openSuggestionMenu(),r)return e.preventDefault(),this._cancelSuggest(),void this._handleItemNavigation(s,i,this._suggestionListNode);const t=i[this._activeMenuItemIndex];if("Enter"===s&&t){const e=x(t);return void(e?(this._focus(),this.search(e)):E(t)&&this._useCurrentLocation())}}this.viewModel.searchTerm&&this.suggest()}_handleItemNavigation(e,t,s){const r=this._activeMenuItemIndex;"Home"===e&&(this._activeMenuItemIndex=0),"End"===e&&(this._activeMenuItemIndex=t.length-1),"ArrowUp"===e&&(this._activeMenuItemIndex=this._activeMenuItemIndex<=0?t.length-1:this._activeMenuItemIndex-1),"ArrowDown"===e&&(this._activeMenuItemIndex=this._activeMenuItemIndex===t.length-1?0:this._activeMenuItemIndex+1),r!==this._activeMenuItemIndex&&s&&v(t[this._activeMenuItemIndex],s)}_scrollToTopSuggestion(){this._suggestionListNode&&(this._suggestionListNode.scrollTop=0)}_openSuggestionMenu(){this.activeMenu="suggestion"}_handleInputPaste(e){const t=e.target;this.viewModel.searchTerm!==t.value&&(this.viewModel.searchTerm=t.value),this.viewModel.searchTerm&&this.suggest()}_handleSourceMenuKeydown(e){const s=t(e);if(M(s)){e.preventDefault();const t=this._sourceListNode?.getElementsByTagName("li"),s=t?.[this._activeMenuItemIndex];this._setSourceFromMenuItem(s)}else"ArrowUp"!==s&&"ArrowDown"!==s&&"End"!==s&&"Home"!==s||e.preventDefault()}_handleSourceMenuKeyup(e){const s=t(e),r="ArrowUp"===s||"ArrowDown"===s||"End"===s||"Home"===s;if(r&&e.preventDefault(),"Escape"===s)return this._clearActiveMenu(),void this._sourceMenuButtonNode?.focus();const i=this._sourceListNode?.getElementsByTagName("li");return i&&0!==i.length&&r?("source"!==this.activeMenu&&(this.activeMenu="source"),void this._handleItemNavigation(s,i,this._sourceListNode?.parentElement)):void 0}_focus(e){this.focus(),e&&(this.activeMenu=e)}_formSubmit(e){e.preventDefault(),-1===this._activeMenuItemIndex&&this.search()}_getSourceName(e){const{messages:t}=this,s=this.viewModel,{allSources:r}=s,i=r.at(e);return e===g.ALL_INDEX?t.all:i&&i.name||t.untitledSource}_getSuggestResultHTML(e,t){return e?y.test(e)?e:f(e,t):this.messages.untitledResult}_renderSearchResultsContent(){return this._searchResultRenderer.showMoreResultsOpen=!1,this._searchResultRenderer.viewModel=this.viewModel,this._searchResultRenderer}};function x(e){return e?.["data-suggestion"]}function T(e){return e?.["data-source-index"]}function E(e){return!!e?.["data-current-location-item"]}e([l()],C.prototype,"_activeMenuItemIndex",void 0),e([l()],C.prototype,"displayedSearchTerm",null),e([l({readOnly:!0})],C.prototype,"inputId",null),e([l({readOnly:!0})],C.prototype,"suggestionsMenuId",null),e([l({readOnly:!0})],C.prototype,"sourceMenuId",null),e([l({readOnly:!0})],C.prototype,"sourceMenuButtonId",null),e([l()],C.prototype,"activeMenu",void 0),e([l({readOnly:!0})],C.prototype,"activeSource",null),e([l()],C.prototype,"activeSourceIndex",null),e([l()],C.prototype,"allPlaceholder",null),e([l({readOnly:!0})],C.prototype,"allSources",null),e([l()],C.prototype,"autoNavigate",null),e([l()],C.prototype,"autoSelect",null),e([l({readOnly:!0})],C.prototype,"defaultSources",null),e([l()],C.prototype,"disabled",void 0),e([l()],C.prototype,"goToOverride",null),e([l()],C.prototype,"iconClass",void 0),e([l()],C.prototype,"icon",void 0),e([l()],C.prototype,"includeDefaultSources",null),e([l()],C.prototype,"label",null),e([l()],C.prototype,"locationEnabled",null),e([l()],C.prototype,"maxResults",null),e([l()],C.prototype,"maxSuggestions",null),e([l(),S("esri/widgets/Search/t9n/Search")],C.prototype,"messages",void 0),e([l(),S("esri/t9n/common")],C.prototype,"messagesCommon",void 0),e([l()],C.prototype,"minSuggestCharacters",null),e([l()],C.prototype,"popupEnabled",null),e([l()],C.prototype,"popupTemplate",null),e([l()],C.prototype,"portal",null),e([l()],C.prototype,"resultGraphic",null),e([l()],C.prototype,"resultGraphicEnabled",null),e([l({readOnly:!0})],C.prototype,"results",null),e([l()],C.prototype,"searchAllEnabled",null),e([l()],C.prototype,"searchTerm",null),e([l({readOnly:!0})],C.prototype,"selectedResult",null),e([l()],C.prototype,"sources",null),e([l({readOnly:!0})],C.prototype,"suggestions",null),e([l()],C.prototype,"suggestionsEnabled",null),e([l()],C.prototype,"view",null),e([w(["search-complete","search-clear","search-start","select-result","suggest-start","suggest-complete"]),l({type:g})],C.prototype,"viewModel",void 0),C=e([a("esri.widgets.Search")],C);const L=C;export{L as default};
|
package/widgets/Swipe.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.28/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{_ as e}from"../chunks/tslib.es6.js";import{eventKey as t}from"../core/events.js";import{property as i}from"../core/accessorSupport/decorators/property.js";import"../core/accessorSupport/ensureType.js";import"../core/arrayUtils.js";import"../core/has.js";import{subclass as r}from"../core/accessorSupport/decorators/subclass.js";import n from"./Widget.js";import{globalCss as o}from"./support/globalCss.js";import{legacyIcon as s}from"./support/legacyIcon.js";import"./support/widgetUtils.js";import{messageBundle as a}from"./support/decorators/messageBundle.js";import{tsx as l}from"./support/jsxFactory.js";import d from"./Swipe/SwipeViewModel.js";const p="esri-swipe",c={base:p,widgetIcon:s.upDownArrows,baseDisabled:`${p}--disabled`,vertical:`${p}--vertical`,horizontal:`${p}--horizontal`,container:`${p}__container`,divider:`${p}__divider`,handle:`${p}__handle`,handleHidden:`${p}__handle--hidden`,handleIcon:`${p}__handle-icon`},h={handle:!0,divider:!0};let v=class extends n{constructor(e,t){super(e,t),this.disabled=!1,this.iconClass=c.widgetIcon,this.icon=null,this.messages=null,this.viewModel=new d,this._pointerOffset=0,this._container=null,this._onContainerPointerDown=this._onContainerPointerDown.bind(this),this._onContainerPointerMove=this._onContainerPointerMove.bind(this),this._onContainerPointerUp=this._onContainerPointerUp.bind(this)}get direction(){return this.viewModel.direction}set direction(e){this.viewModel.direction=e}get dragLabel(){return this.messages?.dragLabel??""}set dragLabel(e){this._overrideIfSome("dragLabel",e)}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get leadingLayers(){return this.viewModel.leadingLayers}set leadingLayers(e){this.viewModel.leadingLayers=e}get position(){return this.viewModel.position}set position(e){this.viewModel.position=e}get trailingLayers(){return this.viewModel.trailingLayers}set trailingLayers(e){this.viewModel.trailingLayers=e}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}set visibleElements(e){this._set("visibleElements",{...h,...e})}get visibleElements(){return this._get("visibleElements")||h}render(){const{state:e,direction:t}=this.viewModel,i="disabled"===e||this.disabled,r={[o.disabled]:i,[c.baseDisabled]:i,[c.vertical]:"vertical"===t,[c.horizontal]:"horizontal"===t};return l("div",{class:this.classes(c.base,o.widget,r)},"disabled"===e?null:this._renderContainer())}_renderHandle(){const{direction:e}=this.viewModel,{visibleElements:t}=this,i={[s.dragHorizontal]:"vertical"===e,[s.dragVertical]:"horizontal"===e},r=this.classes(c.handle,!t.handle&&c.handleHidden);return l("div",{key:"handle",role:"presentation",class:r},l("span",{"aria-hidden":"true",class:this.classes(
|
|
5
|
+
import{_ as e}from"../chunks/tslib.es6.js";import{eventKey as t}from"../core/events.js";import{property as i}from"../core/accessorSupport/decorators/property.js";import"../core/accessorSupport/ensureType.js";import"../core/arrayUtils.js";import"../core/has.js";import{subclass as r}from"../core/accessorSupport/decorators/subclass.js";import n from"./Widget.js";import{globalCss as o}from"./support/globalCss.js";import{legacyIcon as s}from"./support/legacyIcon.js";import"./support/widgetUtils.js";import{messageBundle as a}from"./support/decorators/messageBundle.js";import{tsx as l}from"./support/jsxFactory.js";import d from"./Swipe/SwipeViewModel.js";const p="esri-swipe",c={base:p,widgetIcon:s.upDownArrows,baseDisabled:`${p}--disabled`,vertical:`${p}--vertical`,horizontal:`${p}--horizontal`,container:`${p}__container`,divider:`${p}__divider`,handle:`${p}__handle`,handleHidden:`${p}__handle--hidden`,handleIcon:`${p}__handle-icon`},h={handle:!0,divider:!0};let v=class extends n{constructor(e,t){super(e,t),this.disabled=!1,this.iconClass=c.widgetIcon,this.icon=null,this.messages=null,this.viewModel=new d,this._pointerOffset=0,this._container=null,this._onContainerPointerDown=this._onContainerPointerDown.bind(this),this._onContainerPointerMove=this._onContainerPointerMove.bind(this),this._onContainerPointerUp=this._onContainerPointerUp.bind(this)}get direction(){return this.viewModel.direction}set direction(e){this.viewModel.direction=e}get dragLabel(){return this.messages?.dragLabel??""}set dragLabel(e){this._overrideIfSome("dragLabel",e)}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get leadingLayers(){return this.viewModel.leadingLayers}set leadingLayers(e){this.viewModel.leadingLayers=e}get position(){return this.viewModel.position}set position(e){this.viewModel.position=e}get trailingLayers(){return this.viewModel.trailingLayers}set trailingLayers(e){this.viewModel.trailingLayers=e}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}set visibleElements(e){this._set("visibleElements",{...h,...e})}get visibleElements(){return this._get("visibleElements")||h}render(){const{state:e,direction:t}=this.viewModel,i="disabled"===e||this.disabled,r={[o.disabled]:i,[c.baseDisabled]:i,[c.vertical]:"vertical"===t,[c.horizontal]:"horizontal"===t};return l("div",{class:this.classes(c.base,o.widget,r)},"disabled"===e?null:this._renderContainer())}_renderHandle(){const{direction:e}=this.viewModel,{visibleElements:t}=this,i={[s.dragHorizontal]:"vertical"===e,[s.dragVertical]:"horizontal"===e},r=this.classes(c.handle,!t.handle&&c.handleHidden);return l("div",{key:"handle",role:"presentation",class:r},l("span",{"aria-hidden":"true",class:this.classes(c.handleIcon,i)}))}_renderDivider(){const{visibleElements:e}=this;return e&&e.divider?l("div",{key:"divider",role:"presentation",class:c.divider}):null}_renderContent(){return[this._renderDivider(),this._renderHandle()]}_renderContainer(){const{disabled:e,dragLabel:t,viewModel:i}=this,{max:r,min:n,direction:o,position:s}=i,a=`${s}%`,d={top:"vertical"===o?a:void 0,left:"vertical"===o?void 0:a},p=this._renderContent();return l("div",e?{key:"container",role:"presentation",styles:d,class:c.container}:{tabIndex:0,key:"container",bind:this,afterCreate:this._afterContainerCreate,onkeydown:this._onContainerKeyDown,"touch-action":"none",role:"slider",title:t,"aria-label":t,"aria-orientation":o,"aria-valuemax":`${r}`,"aria-valuemin":`${n}`,"aria-valuenow":`${s}`,"aria-valuetext":a,styles:d,class:c.container},p)}_afterContainerCreate(e){this._container=e,e.addEventListener("pointerdown",this._onContainerPointerDown)}_calculatePointerOffset(e){const{direction:t}=this,i=e.target,r=("vertical"===t?i.clientHeight:i.clientWidth)/2,n=i.getBoundingClientRect(),o=e.clientX-n.left,s=e.clientY-n.top;this._pointerOffset="vertical"===t?s-r:o-r}_onContainerPointerDown(e){e.preventDefault(),this._container&&document.activeElement!==this.container&&this._container.focus(),this._calculatePointerOffset(e),document.addEventListener("pointerup",this._onContainerPointerUp),document.addEventListener("pointermove",this._onContainerPointerMove)}_onContainerPointerUp(e){e.preventDefault(),document.removeEventListener("pointerup",this._onContainerPointerUp),document.removeEventListener("pointermove",this._onContainerPointerMove)}_onContainerPointerMove(e){e.preventDefault();const{_pointerOffset:t,container:i,direction:r}=this,{clientX:n,clientY:o}=e,{top:s,left:a,width:l,height:d}=i.getBoundingClientRect(),p=("vertical"===r?o-s-t:n-a-t)/("vertical"===r?d:l)*100;this.position=p}_getKeyPosition(e){const i=t(e),{position:r}=this,{max:n,min:o,step:s,stepMultiplier:a,direction:l}=this.viewModel,d=s*a;["ArrowUp","ArrowDown","ArrowLeft","ArrowRight","Home","End","PageUp","PageDown"].includes(i)&&(e.preventDefault(),e.stopPropagation());if("vertical"===l?"ArrowDown"===i||"ArrowRight"===i:"ArrowUp"===i||"ArrowRight"===i){return r+(e.shiftKey?d:s)}if("vertical"===l?"ArrowUp"===i||"ArrowLeft"===i:"ArrowDown"===i||"ArrowLeft"===i){return r-(e.shiftKey?d:s)}if("Home"===i)return o;if("End"===i)return n;if("vertical"===l?"PageDown"===i:"PageUp"===i)return r+d;return("vertical"===l?"PageUp"===i:"PageDown"===i)?r-d:null}_onContainerKeyDown(e){const t=this._getKeyPosition(e);"number"==typeof t&&(this.position=t)}};e([i()],v.prototype,"direction",null),e([i()],v.prototype,"disabled",void 0),e([i()],v.prototype,"dragLabel",null),e([i()],v.prototype,"iconClass",void 0),e([i()],v.prototype,"icon",void 0),e([i()],v.prototype,"label",null),e([i()],v.prototype,"leadingLayers",null),e([i(),a("esri/widgets/Swipe/t9n/Swipe")],v.prototype,"messages",void 0),e([i()],v.prototype,"position",null),e([i()],v.prototype,"trailingLayers",null),e([i()],v.prototype,"view",null),e([i({type:d})],v.prototype,"viewModel",void 0),e([i()],v.prototype,"visibleElements",null),v=e([r("esri.widgets.Swipe")],v);const u=v;export{u 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.28/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{_ as e}from"../../chunks/tslib.es6.js";import{id as t}from"../../kernel.js";import r from"../../core/Collection.js";import s from"../../core/Error.js";import i from"../../core/Evented.js";import a from"../../core/Logger.js";import{when as l}from"../../core/reactiveUtils.js";import{property as o}from"../../core/accessorSupport/decorators/property.js";import"../../core/accessorSupport/ensureType.js";import"../../core/arrayUtils.js";import"../../core/has.js";import{subclass as n}from"../../core/accessorSupport/decorators/subclass.js";import c from"../../geometry/Point.js";import{fetchMessageBundle as h}from"../../intl/messages.js";import u from"../../layers/FeatureLayer.js";import p from"../../layers/GraphicsLayer.js";import d from"../../layers/support/CodedValueDomain.js";import g from"../../networks/UtilityNetwork.js";import{getObjectIdsFromElements as y,getFeaturesFromLayers as m}from"../../networks/support/utils.js";import f from"../../portal/Portal.js";import{hasUserTypeExtension as w}from"../../portal/support/utils.js";import{trace as _}from"../../rest/networks/trace.js";import b from"../../rest/networks/support/TraceLocation.js";import v from"../../rest/networks/support/TraceParameters.js";import{GeometryHandler as A}from"./support/GeometryHandler.js";import{GraphicHandler as I}from"./support/GraphicHandler.js";import{ResultAreaHandler as R}from"./support/ResultAreaHandler.js";import{UtilityHelper as k}from"./support/UtilityHelper.js";const F=()=>h("esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace"),S=()=>h("esri/core/t9n/Units"),G="utility-network-trace-flags",L="utility-network-trace-results";function T(e){return e instanceof d}function H(e){return"feature"===e.layer.type||"subtype-group"===e.layer.type}function P(e){return void 0!==e.layerViews}function N(e){return"graphics"===e.type}async function U(e){const t=new u({url:e.networkSystemLayers.dirtyAreasLayerUrl});await t.load();const r=t.version;if(Number(r)<=11.1){const t=new f({url:new URL(e.layerUrl).origin+"/portal"});await t.load();const r=t.user.username;return await w(t,r,"utilityNetwork")}return!0}let C=class extends i.EventedAccessor{constructor(e){super(e),this._activeProgress=!1,this._clickHandler=null,this._flags=[],this._geometryHandler=null,this._graphicHandler=null,this._highlightHandler=[],this._resultAreaHandler=null,this._utilityHelper=new k,this._traces=[],this._watchHandler=null,this._validUNLayers=[],this.defaultGraphicColor={color:[255,255,0,.6],haloOpacity:.9,fillOpacity:.2,hex:"#FFFF00"},this.enableResultArea=!1,this.flags=[],this.gdbVersion="sde.DEFAULT",this.messages=null,this.messagesUnits=null,this.defaultResultAreaProperties={type:"convexhull",distance:10,unit:"meters",areaUnit:"square-meters",color:{color:[255,165,0,.5],haloOpacity:.9,fillOpacity:.2,hex:"#ffa500"},show:!1},this.selectedTraces=[],this.selectOnComplete=!0,this.showGraphicsOnComplete=!0,this.showSelectionAttributes=!0,this.traceResults=[],this.utilityNetwork=null}initialize(){this._geometryHandler=new A,this._graphicHandler=new I,this._resultAreaHandler=new R;(async()=>{const[e,t]=await Promise.all([F(),S()]);this.set({messages:e,messagesUnits:t})})()}destroy(){this.view=null}get resultAreaProperties(){return this.defaultResultAreaProperties}set resultAreaProperties(e){this._set("resultAreaProperties",{...this.defaultResultAreaProperties,...e})}get state(){return this.view?.ready?"ready":"loading"}get view(){return this._get("view")}set view(e){e&&"2d"!==e.type&&a.getLogger(this).error(new s("view:invalid-view","SceneView is not supported",{view:e})),this._set("view",e)}addFlagByHit(e,t){const r=e=>{this.view?.popup&&(this.view.popupEnabled=e)};return new Promise(((s,i)=>{r(!1),this._clickHandler?.remove(),this.emit("add-flag",{type:e}),this._clickHandler=this.view?.on("click",(a=>{this.queryFlagByHitTest(a,e,t).then((i=>{r(!0),this._clickHandler?.remove(),this.emit("add-flag-complete",{type:e,symbol:t}),s(i)})).catch((s=>{r(!0),this._clickHandler?.remove(),this.emit("add-flag-error",{type:e,symbol:t}),i(s)}))}))}))}async addFlagsOnLoad(){return new Promise((e=>{const t=[];this._watchHandler=l((()=>null!=this.view&&!this.view.updating),(async()=>{if(this._flags.length>0)e(t);else{const r=this.flags.map((async e=>{if(e.mapPoint){const r=new c({x:e.mapPoint.x,y:e.mapPoint.y,spatialReference:e.mapPoint.spatialReference.wkid}),s={screenPoint:this.view.toScreen(r),mapPoint:r};await this.queryFlagByHitTest(s,e.type)||("barrier"===e.type?t.push("barrier"):t.push("starting-point"))}}));await Promise.all(r),e(t)}}),{initial:!0})}))}addResultAreaToMap(e){if(e.resultArea.show=!0,null!==e.results?.aggregatedGeometry){const t=this._geometryHandler.mergeAggregatedToGeometries(e.results?.aggregatedGeometry);if(t.length>0){const r=Array(t.length).fill(e.resultArea?.distance);this.createResultAreaGeometries(e,t,r)}}else{const t=this._groupResultsByNetworkSource(e.results.elements),r=[];for(const e in t)r.push(this.queryFeaturesById(t[e]));Promise.all(r).then((t=>{const r=[];for(const e of t)for(const t of e)for(const e of t.featureSet.features)r.push(e.geometry);const s=Array(r.length).fill(e.resultArea?.distance);this.createResultAreaGeometries(e,r,s)})).catch((e=>{console.log(e)}))}}async addResultGraphicToView(e,t){const{view:r}=this,{results:s}=e;if(r&&s)for(const i in s.aggregatedGeometry)if("line,multipoint,polygon".includes(i)){const a=i,l=s.aggregatedGeometry[a];if(null!=l){l.spatialReference=this.utilityNetwork.spatialReference,e.graphicEnabled=!0;const s=await this._geometryHandler.projectGeometry(l,r.spatialReference),i={globalid:e.trace.globalId};if(null!==s){const e=this._graphicHandler.makeGraphic(s,t.color,i,r.spatialReference);this._getGraphicLayer(L)?.add(e)}}}}addTerminal(e,t){const r=[...this._flags];r.forEach((r=>{r.globalId===t.globalId&&(t.selectedTerminals?.includes(parseInt(e,10))||r.selectedTerminals?.push(parseInt(e,10)))})),this._flags=r}async callTrace(){const e=this._traces.filter((e=>e.selected));return e.length>0&&(this.traceResults.length>0&&this.traceResults.forEach((e=>{this.removeResultGraphicFromView(e)})),this.traceResults=[],this.removeSelection(),await Promise.all(e.map((async(e,t)=>{const r=e,s=new v({gdbVersion:this.gdbVersion,moment:null,traceType:r.traceType,traceLocations:this._flags,namedTraceConfigurationGlobalId:r.globalId,traceConfiguration:null,outSpatialReference:null,resultTypes:null});await this.executeTrace(r,this.utilityNetwork.networkServiceUrl,s).then((e=>{if(e.hasOwnProperty("results")){const r={...e};if(null!==r.results){r.resultArea={...this.resultAreaProperties};const e=[...r.results.elements];r.results.elements.length=0;const s=new Map;for(const t of e)s.has(t.globalId)||(s.set(t.globalId,!0),r.results.elements.push(t));const i=[...this.traceResults];i.splice(t,0,r),this.traceResults=i,null!==r.results&&(this.selectOnComplete&&this.mergeSelection(!0,r.trace),this.showGraphicsOnComplete&&this.addResultGraphicToView(r,r.graphicColor),this.enableResultArea&&r.resultArea.show&&this.addResultAreaToMap(r))}else{const r=[...this.traceResults];r.splice(t,0,e),this.traceResults=r}this._activeProgress=!1}else{this._activeProgress=!1;const r=[...this.traceResults];r.splice(t,0,e),this.traceResults=r}})).catch((e=>{throw this._activeProgress=!1,e}))}))),!0)}changeResultAreaColor(e,t){e.resultArea&&(e.resultArea.color??=t,this._resultAreaHandler?.changeResultAreaColor(e.trace.globalId,t,this.view.map))}changeResultGraphicColor(e,t){const r=[...this.traceResults];r.length>0&&r.forEach((r=>{r.trace.globalId===t.trace.globalId&&(r.graphicColor=e,r.graphicEnabled=!0)})),this.traceResults=r,this.removeResultGraphicFromView(t),this.addResultGraphicToView(t,e)}changeFlagSymbol(e,t){this._flags.length>0&&this._flags.forEach((r=>{r.type===e&&t&&r.mapGraphic&&(r.mapGraphic.symbol=t)}))}checkCanTrace(){const e={status:!0,issues:[]};let t=!1;const r=this._flags.some((e=>"starting-point"===e.type)),s=this._flags.filter((e=>null!==e.allTerminals));s.length>0&&(t=s.some((e=>e.selectedTerminals.length<=0)));let i=[];return r?(i=this._traces.filter((e=>e.selected)),i.length<=0?(e.status=!1,e.issues=["noTrace"],t&&(e.status=!1,e.issues=["noTrace","noTerminalSelected"])):t&&(e.status=!1,e.issues=["noTerminalSelected"])):(i=this._traces.filter((e=>!0===e.selected)),i.length>0?(e.status=!1,e.issues=["noStart"],t&&(e.status=!1,e.issues=["noStart","noTerminalSelected"])):(e.status=!1,e.issues=["noStart","noTrace"],t&&(e.status=!1,e.issues=["noStart","noTrace","noTerminalSelected"]))),e}checkSelectionExist(){let e=!1;return this._highlightHandler.some((t=>{t&&(e=!0)})),e}clearResult(e){if(!this.view)return;let t=this.traceResults;if(t.length>0){const r=t.filter((t=>t.trace.globalId===e.globalId));r.length>0&&(this.removeResultGraphicFromView(r[0]),this.removeResultAreaFromMap(r[0])),t=t.filter((t=>t.trace.globalId!==e.globalId))}this.traceResults=t,0===t.length?(this._resultAreaHandler?.removeResultAreaGrahicsLayer(this.view.map),this.removeSelection(),this.emit("clear-selection",{resultSet:[]})):this.mergeSelection(!1,e)}createResultAreaGeometries(e,t,r){if(!this.view||!this.resultAreaProperties)return;let s;if("convexhull"===this.resultAreaProperties?.type?s=this._resultAreaHandler?.createConvexHull(t,e.resultArea?.distance,e.resultArea?.unit):t&&(s=this._resultAreaHandler?.createBuffer(t,r,e.resultArea?.unit,!0)),s&&Array.isArray(s)){if(s.length>0)for(const i of s){const t=this.getResultAreaAttributes(e,i),r=this._resultAreaHandler?.createResultAreaGraphic(i,t,e.resultArea?.areaUnit,this.messages,this.messagesUnits,e.resultArea?.color);r&&this._resultAreaHandler?.addResultAreaToMap(r,this.view.map)}}else{const t=this.getResultAreaAttributes(e,s),r=this._resultAreaHandler?.createResultAreaGraphic(s,t,e.resultArea?.areaUnit,this.messages,this.messagesUnits,e.resultArea?.color);r&&this._resultAreaHandler?.addResultAreaToMap(r,this.view.map)}}executeTrace(e,t,r){const s=this._processFlags(r.traceLocations);return r.traceLocations=s,_(t,r).then((t=>({trace:e,results:t,selectionEnabled:!1,graphicEnabled:!1,graphicColor:this.defaultGraphicColor,status:"success",date:new Date}))).catch((t=>({trace:e,results:null,selectionEnabled:!1,graphicEnabled:!1,graphicColor:this.defaultGraphicColor,status:t.message,date:new Date})))}getResultAreaAttributes(e,r){const{messages:s}=this,i=[],a=[];this._flags.forEach((e=>{const t=e.displayValue?.field+":"+e.displayValue?.value+";"+s.attributeStrings.globalid+":"+e.globalId+";"+s.attributeStrings.terminalid+":"+e.terminalId+";"+s.attributeStrings.x+":"+e.mapPoint?.x+";"+s.attributeStrings.y+":"+e.mapPoint?.y;"starting-point"===e.type?i.push(t):a.push(t)}));return{traceId:e.trace.globalId,traceName:e.trace.title,traceDescription:e.trace.description??"",startingPoints:i.toString(),barriers:a.toString(),version:this.gdbVersion,username:t.credentials[0].userId,date:e.date,elementCount:e.results?.elements.length,functionResult:JSON.stringify(e.results?.globalFunctionResults),areaStatistic:this._geometryHandler.calculateArea(r,e.resultArea?.areaUnit)}}getValidSources(){let e=[];const t=this.utilityNetwork.dataElement?.domainNetworks??[];for(const r of t)e=e.concat(r.junctionSources),e=e.concat(r.edgeSources);return e}async loadUtilityNetwork(){const{view:e}=this;if(!e)return null;if(await e.when(),this.utilityNetwork){if(this.utilityNetwork.loaded||await this.utilityNetwork.load(),this.utilityNetwork instanceof g){try{const t=e.map;await t.loadAll(),this._loadUNSupportItems()}catch(i){this._loadUNSupportItems()}return this.utilityNetwork}return null}const t=e.map,r=t.utilityNetworks?.at(0);if(r){if(await r.load(),this.utilityNetwork=r,!await U(r))throw new s("utility-network:no-user-type-extension","User type extension not found");try{await t.loadAll(),this._loadUNSupportItems()}catch(i){}finally{this._loadUNSupportItems()}return r}return null}manageFilterBarrier(e,t){const r=[...this._flags];r.forEach((r=>{r.globalId===t.globalId&&"barrier"===t.type&&r.id===t.id&&(r.isFilterBarrier=e)})),this._flags=r}mergeSelection(e,t){let r=[];const s=[...this.traceResults],i=t.globalId;s.forEach((t=>{i===t.trace.globalId&&(t.selectionEnabled=e),t.selectionEnabled&&null!=t.results&&null!==t.results.elements&&(r=[...r,...t.results.elements??[]])})),this.selectResults([...new Set(r)])}async queryFeaturesById(e){const{view:t}=this;if(!t)return null;const s=y(this.utilityNetwork,e),i=this._getUniqueMapLayerViews(t),a={layerUrl:s[0].layerUrl,objectIds:s[0].objectIds,outFields:["*"]},l=i.filter((e=>e.layer?.parsedUrl?.path===s[0].layerUrl));if(l.length>0){const e=(await Promise.all(l.map((async e=>{const s=new r,i=e.layer;s.add(i);const l={layers:s,layerInfos:[a],returnGeometry:!0,outSpatialReference:t.spatialReference};return(await m(l))[0]})))).filter((e=>e.featureSet.features.length>0));return e.length>0?e:null}return null}queryFlagByHitTest(e,t,r){return this._lookupFlagByHit(e).then((e=>{const{view:s}=this;if(!s)return!1;if(e.length>0){const s=[...this._flags],i=r;return e.forEach((e=>{const r=e.graphic,a=r.attributes.hasOwnProperty("GLOBALID")?r.attributes.GLOBALID:r.attributes.globalid;if(s.filter((e=>e.globalId===a)).length<=0){const e=this._graphicHandler.getFlagGraphic(r.mapPoint,t,r,i);this._getGraphicLayer(G)?.add(e),s.push({...r,type:t,globalId:r.attributes.globalid||r.attributes.GLOBALID,details:r,mapGraphic:e,id:s.length+1})}else if(null!==r.percentAlong){const e=this._graphicHandler.getFlagGraphic(r.mapPoint,t,r,i);this._getGraphicLayer(G)?.add(e),s.push({...r,type:t,globalId:r.attributes.globalid||r.attributes.GLOBALID,details:r,mapGraphic:e,id:s.length+1})}})),this._flags=s,!0}return!1}))}removeResultGraphicFromView(e){const{view:t}=this;if(!t)return;const r=this._getGraphicLayer(L)?.graphics;e.graphicEnabled=!1;const s=r?.filter((t=>t.attributes[t.attributes.hasOwnProperty("GLOBALID")?"GLOBALID":"globalid"]===e.trace.globalId));s?.forEach((e=>{this._getGraphicLayer(L)?.remove(e)}))}removeFlag(e){const t=this._flags.filter((t=>{if(t.id!==e.id)return t}));this._removeGraphic(e),this._flags=t}removeResultAreaGrahicsLayer(){this._resultAreaHandler?.removeResultAreaGrahicsLayer(this.view.map)}removeResultAreaFromMap(e){e.resultArea.show=!1,this._resultAreaHandler?.removeResultArea(e.trace.globalId,this.view?.map)}removeSelection(){this._highlightHandler.forEach((e=>{e&&e.remove()})),this._highlightHandler=[]}removeTerminal(e,t){const r=[...this._flags];r.forEach((r=>{if(r.globalId===t.globalId&&t.selectedTerminals?.includes(parseInt(e,10))){const s=t.selectedTerminals.indexOf(parseInt(e,10));r.selectedTerminals?.splice(s,1)}})),this._flags=r}removeFlagsOnLoadWatcher(){this._watchHandler&&null!==this._watchHandler&&this._watchHandler.remove()}reset(){this._flags=[],this.traceResults=[];const e=[...this._traces];e.forEach((e=>{e.selected=!1})),this._traces=e,this.view&&(this._getGraphicLayer(L)?.removeAll(),this._getGraphicLayer(G)?.removeAll(),this.removeResultAreaGrahicsLayer(),this.removeSelection(),this.emit("clear-selection",{resultSet:[]}))}selectFeaturesById(e){const{view:t}=this;if(!t)return;const r=y(this.utilityNetwork,e);this._getUniqueMapLayerViews(t).forEach((e=>{e.layer?.parsedUrl?.path===r[0].layerUrl&&H(e)&&this._highlightHandler.push(e.highlight(r[0].objectIds))}))}selectResults(e){if(e.length>0){this.removeSelection();const t=this._groupResultsByNetworkSource(e),r=[];for(const e in t)this.selectFeaturesById(t[e]),r.push(this.queryFeaturesById(t[e]));Promise.all(r).then((e=>{this.emit("select-features",{resultSet:e})}))}else this.removeSelection(),this.emit("clear-selection",{resultSet:[]})}selectTraces(e,t){const r=[...this._traces];r.forEach((r=>{t===r.globalId&&(r.selected=e)})),this._traces=r}selectTracesOnLoad(){this.utilityNetwork.hasOwnProperty("sharedNamedTraceConfigurations")&&(this._traces=[...this.utilityNetwork.sharedNamedTraceConfigurations],this._traces.forEach((e=>{e.selected=!1,this.selectedTraces.includes(e.globalId)&&(e.selected=!0)})))}zoomToAsset(e){this.view?.goTo(e).catch((e=>console.error(e)))}_loadUNSupportItems(){this._populateOutfields(),this._createGraphicLayer(G),this._createGraphicLayer(L),this._validUNLayers=this._utilityHelper.getValidUtilityNetworkLayers(this.view.map,this.utilityNetwork)}_getUniqueMapLayerViews(e){const t=[];return e.layerViews.filter((({layer:{type:e}})=>"feature"===e||"group"===e||"subtype-group"===e)).forEach((e=>{switch(e.layer.type){case"group":if(P(e))for(const r of e.layerViews)t.push(r);break;case"subtype-group":t.push(e);break;default:t.some((t=>t.layer.id===e.layer.id))||t.push(e)}})),t}_processFlags(e){const t=[];return e.forEach((e=>{if(null!==e.selectedTerminals&&e.selectedTerminals.length>0)e.selectedTerminals.forEach((r=>{const s=new b({globalId:e.globalId,percentAlong:e.percentAlong,terminalId:r,type:e.type,isFilterBarrier:e.isFilterBarrier});t.push(s)}));else{const r=new b({globalId:e.globalId,percentAlong:e.percentAlong,terminalId:null,type:e.type,isFilterBarrier:e.isFilterBarrier});t.push(r)}})),t}_getDisplayField(e){return"subtype-sublayer"===e?.layer?.type?this._getDisplayFieldBySublayer(e):this._getDisplayFieldByFeatureLayer(e)}_getDisplayFieldBySublayer(e){let t="",r="";const s=e.layer;t=this._checkParentForData(s,"displayField");for(const i in e.attributes){const a=i.toLowerCase();a===t?.toLowerCase()?(r=e.attributes[i],"assetgroup"===a||"assettype"===a?r=this._checkSubtype(s,s.subtypeCode):(r=this._checkDomain(s.fields,i,r),"string"==typeof r&&(r=this._defaultDisplayField(r,s)))):(r=this._checkDomain(s.fields,i,r),"string"==typeof r&&(r=this._defaultDisplayField(r,s)))}return{field:t,value:r.toString()}}_getDisplayFieldByFeatureLayer(e){const t=e.layer;let r=t.displayField,s="";for(const i in e.attributes){const a=i.toLowerCase();if(a===r?.toLowerCase())if(s=e.attributes[i],"assetgroup"===a||"assettype"===a){let a=e.attributes[t.typeIdField.toUpperCase()];a||(a=e.attributes[t.typeIdField.toLowerCase()]),r=t.typeIdField,s=this._checkSubtype(t,a),""===r&&(t.templates&&t.templates.length>0?(r=t.templates[0]?.name,s=t.templates[0]?.name):(r=t.displayField,s=e.attributes[i]))}else s=this._checkDomain(t.fields,i,s),"string"==typeof s&&(s=this._defaultDisplayField(s,t));else s=this._checkDomain(t.fields,i,s),"string"==typeof s&&(s=this._defaultDisplayField(s,t))}return{field:r,value:s?s.toString():""}}_checkSubtype(e,t){let r=t;if("subtype-sublayer"===e.type){const s=this._checkParentForData(e,"subtypes");s?.length>0&&s.forEach((e=>{e.code===t&&(r=e.name)}))}else if(null!=e.types&&e.types.length>0){const s=e.types.filter((e=>e.id===t));s.length>0&&(r=s[0].name)}return r}_checkDomain(e,t,r){let s=r;const i=e.filter((e=>e.name.toLowerCase()===t.toLowerCase()));if(i.length>0&&T(i[0].domain)&&i[0].domain?.codedValues){const e=i[0].domain.codedValues.filter((({code:e})=>e===r));e.length>0&&(s=e[0].name)}return s}_checkParentForData(e,t){return e.parent?.[t]??null}_defaultDisplayField(e,t){return e.trim()?e:t.templates&&t.templates?.length>0?t.templates[0].name:t.title}_groupBy(e,t){return e.reduce(((e,r)=>((e[r[t]]=e[r[t]]||[]).push(r),e)),{})}_groupResultsByNetworkSource(e){if(e.length>0){return this._groupBy(e,"networkSourceId")}return[]}_lookupFlagByHit(e){return this.view.hitTest(e.screenPoint,{include:this._validUNLayers}).then((t=>{const r=[];if(t.results.length>0){const s=t.results.find((e=>null!==e.layer));if(s.graphic&&null!=s.graphic.geometry)if("polyline"===s.graphic.geometry.type){const t=this._geometryHandler.getPercentageAlong(s.graphic.geometry,e.mapPoint,s.graphic.geometry.spatialReference),i=this._getDisplayField(s.graphic);s.graphic.terminalId=null,s.graphic.isFilterBarrier=!1,s.graphic.allTerminals=null,s.graphic.selectedTerminals=null,s.graphic.percentAlong=t,s.graphic.displayValue=i,s.graphic.mapPoint=s.mapPoint,r.push(s)}else if(("point"===s.graphic.geometry.type||"polygon"===s.graphic.geometry.type)&&null!==this.utilityNetwork){const e=this.utilityNetwork.getTerminalConfiguration(s.graphic),t=this._getDisplayField(s.graphic);s.graphic.terminalId=e?e.terminals[0].id||null:1,s.graphic.isFilterBarrier=!1,s.graphic.allTerminals=e??null,s.graphic.selectedTerminals=[e?e.terminals[0].id||null:1],s.graphic.percentAlong=null,s.graphic.displayValue=t,s.graphic.mapPoint=s.mapPoint,r.push(s)}}return r}))}async _populateOutfields(){const e=this.view?.map,t=this.getValidSources();e?.layers.forEach((e=>{"group"===e.type?e.layers.forEach((e=>{t.some((t=>t.layerId===e.layerId))&&e.fields.some((e=>"assetgroup"===e.name.toLowerCase()))&&(e.outFields=["assetgroup","assettype","globalid","objectid"])})):t.some((t=>t.layerId===e.layerId))&&e.fields.some((e=>"assetgroup"===e.name.toLowerCase()))&&(e.outFields=["assetgroup","assettype","globalid","objectid"])}))}_removeGraphic(e){this._getGraphicLayer(G)?.remove(e.mapGraphic)}_createGraphicLayer(e){const{map:t}=this.view;if(!t.findLayerById(e)){const r=new p({title:e,listMode:"hide",id:e});t.add(r)}}_getGraphicLayer(e){const{map:t}=this.view,r=t.findLayerById(e);return r&&N(r)?r:null}};e([o()],C.prototype,"_activeProgress",void 0),e([o()],C.prototype,"_flags",void 0),e([o()],C.prototype,"_traces",void 0),e([o()],C.prototype,"defaultGraphicColor",void 0),e([o()],C.prototype,"enableResultArea",void 0),e([o()],C.prototype,"flags",void 0),e([o()],C.prototype,"gdbVersion",void 0),e([o()],C.prototype,"messages",void 0),e([o()],C.prototype,"messagesUnits",void 0),e([o()],C.prototype,"resultAreaProperties",null),e([o()],C.prototype,"selectedTraces",void 0),e([o()],C.prototype,"selectOnComplete",void 0),e([o()],C.prototype,"showGraphicsOnComplete",void 0),e([o()],C.prototype,"showSelectionAttributes",void 0),e([o({readOnly:!0})],C.prototype,"state",null),e([o()],C.prototype,"traceResults",void 0),e([o()],C.prototype,"utilityNetwork",void 0),e([o({value:null})],C.prototype,"view",null),C=e([n("esri.widgets.UtilityNetworkTrace.UtilityNetworkTraceViewModel")],C);const B=C;export{B as default};
|
|
5
|
+
import{_ as e}from"../../chunks/tslib.es6.js";import{id as t}from"../../kernel.js";import r from"../../core/Collection.js";import s from"../../core/Error.js";import i from"../../core/Evented.js";import a from"../../core/Logger.js";import{when as l}from"../../core/reactiveUtils.js";import{property as o}from"../../core/accessorSupport/decorators/property.js";import"../../core/accessorSupport/ensureType.js";import"../../core/arrayUtils.js";import"../../core/has.js";import{subclass as n}from"../../core/accessorSupport/decorators/subclass.js";import c from"../../geometry/Point.js";import{fetchMessageBundle as h}from"../../intl/messages.js";import u from"../../layers/FeatureLayer.js";import p from"../../layers/GraphicsLayer.js";import d from"../../layers/support/CodedValueDomain.js";import{isFeatureLayer as g}from"../../layers/support/layerUtils.js";import y from"../../networks/UtilityNetwork.js";import{getObjectIdsFromElements as m,getFeaturesFromLayers as f}from"../../networks/support/utils.js";import w from"../../portal/Portal.js";import{hasUserTypeExtension as _}from"../../portal/support/utils.js";import{trace as b}from"../../rest/networks/trace.js";import v from"../../rest/networks/support/TraceLocation.js";import A from"../../rest/networks/support/TraceParameters.js";import{GeometryHandler as I}from"./support/GeometryHandler.js";import{GraphicHandler as R}from"./support/GraphicHandler.js";import{ResultAreaHandler as k}from"./support/ResultAreaHandler.js";import{UtilityHelper as F}from"./support/UtilityHelper.js";const S=()=>h("esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace"),T=()=>h("esri/core/t9n/Units"),G="utility-network-trace-flags",L="utility-network-trace-results";function H(e){return e instanceof d}function P(e){return"feature"===e.layer.type||"subtype-group"===e.layer.type}function U(e){return"layer"in e}function N(e){return void 0!==e.layerViews}function C(e){return"graphics"===e.type}async function E(e){const t=new u({url:e.networkSystemLayers.dirtyAreasLayerUrl});await t.load();const r=t.version;if(Number(r)<=11.1){const t=new w({url:new URL(e.layerUrl).origin+"/portal"});await t.load();const r=t.user.username;return await _(t,r,"utilityNetwork")}return!0}let B=class extends i.EventedAccessor{constructor(e){super(e),this._activeProgress=!1,this._clickHandler=null,this._flags=[],this._geometryHandler=null,this._graphicHandler=null,this._highlightHandler=[],this._resultAreaHandler=null,this._utilityHelper=new F,this._traces=[],this._watchHandler=null,this._validUNLayers=[],this._traceTimeout=6e5,this.defaultGraphicColor={color:[255,255,0,.6],haloOpacity:.9,fillOpacity:.2,hex:"#FFFF00"},this.enableResultArea=!1,this.flags=[],this.gdbVersion="sde.DEFAULT",this.messages=null,this.messagesUnits=null,this.defaultResultAreaProperties={type:"convexhull",distance:10,unit:"meters",areaUnit:"square-meters",color:{color:[255,165,0,.5],haloOpacity:.9,fillOpacity:.2,hex:"#ffa500"},show:!1},this.selectedTraces=[],this.selectOnComplete=!0,this.showGraphicsOnComplete=!0,this.showSelectionAttributes=!0,this.traceResults=[],this.utilityNetwork=null}initialize(){this._geometryHandler=new I,this._graphicHandler=new R,this._resultAreaHandler=new k;(async()=>{const[e,t]=await Promise.all([S(),T()]);this.set({messages:e,messagesUnits:t})})()}destroy(){this.view=null}get resultAreaProperties(){return this.defaultResultAreaProperties}set resultAreaProperties(e){this._set("resultAreaProperties",{...this.defaultResultAreaProperties,...e})}get state(){return this.view?.ready?"ready":"loading"}get view(){return this._get("view")}set view(e){e&&"2d"!==e.type&&a.getLogger(this).error(new s("view:invalid-view","SceneView is not supported",{view:e})),this._set("view",e)}addFlagByHit(e,t){const r=e=>{this.view?.popup&&(this.view.popupEnabled=e)};return new Promise(((s,i)=>{r(!1),this._clickHandler?.remove(),this.emit("add-flag",{type:e}),this._clickHandler=this.view?.on("click",(a=>{this.queryFlagByHitTest(a,e,t).then((i=>{r(!0),this._clickHandler?.remove(),this.emit("add-flag-complete",{type:e,symbol:t}),s(i)})).catch((s=>{r(!0),this._clickHandler?.remove(),this.emit("add-flag-error",{type:e,symbol:t}),i(s)}))}))}))}async addFlagsOnLoad(){return new Promise((e=>{const t=[];this._watchHandler=l((()=>null!=this.view&&!this.view.updating),(async()=>{if(this._flags.length>0)e(t);else{const r=this.flags.map((async e=>{if(e.mapPoint){const r=new c({x:e.mapPoint.x,y:e.mapPoint.y,spatialReference:e.mapPoint.spatialReference.wkid}),s={screenPoint:this.view.toScreen(r),mapPoint:r};await this.queryFlagByHitTest(s,e.type)||("barrier"===e.type?t.push("barrier"):t.push("starting-point"))}}));await Promise.all(r),e(t)}}),{initial:!0})}))}addResultAreaToMap(e){if(e.resultArea.show=!0,null!==e.results?.aggregatedGeometry){const t=this._geometryHandler.mergeAggregatedToGeometries(e.results?.aggregatedGeometry);if(t.length>0){const r=Array(t.length).fill(e.resultArea?.distance);this.createResultAreaGeometries(e,t,r)}}else{const t=this._groupResultsByNetworkSource(e.results.elements),r=[];for(const e in t)r.push(this.queryFeaturesById(t[e]));Promise.all(r).then((t=>{const r=[];for(const e of t)for(const t of e)for(const e of t.featureSet.features)r.push(e.geometry);const s=Array(r.length).fill(e.resultArea?.distance);this.createResultAreaGeometries(e,r,s)})).catch((e=>{console.log(e)}))}}async addResultGraphicToView(e,t){const{view:r}=this,{results:s}=e;if(r&&s)for(const i in s.aggregatedGeometry)if("line,multipoint,polygon".includes(i)){const a=i,l=s.aggregatedGeometry[a];if(null!=l){l.spatialReference=this.utilityNetwork.spatialReference,e.graphicEnabled=!0;const s=await this._geometryHandler.projectGeometry(l,r.spatialReference),i={globalid:e.trace.globalId};if(null!==s){const e=this._graphicHandler.makeGraphic(s,t.color,i,r.spatialReference);this._getGraphicLayer(L)?.add(e)}}}}addTerminal(e,t){const r=[...this._flags];r.forEach((r=>{r.globalId===t.globalId&&(t.selectedTerminals?.includes(parseInt(e,10))||r.selectedTerminals?.push(parseInt(e,10)))})),this._flags=r}async callTrace(){const e=this._traces.filter((e=>e.selected));return e.length>0&&(this.traceResults.length>0&&this.traceResults.forEach((e=>{this.removeResultGraphicFromView(e)})),this.traceResults=[],this.removeSelection(),await Promise.all(e.map((async(e,t)=>{const r=e,s=new A({gdbVersion:this.gdbVersion,moment:null,traceType:r.traceType,traceLocations:this._flags,namedTraceConfigurationGlobalId:r.globalId,traceConfiguration:null,outSpatialReference:null,resultTypes:null});await this.executeTrace(r,this.utilityNetwork.networkServiceUrl,s).then((e=>{if(e.hasOwnProperty("results")){const r={...e};if(null!==r.results){r.resultArea={...this.resultAreaProperties};const e=[...r.results.elements];r.results.elements.length=0;const s=new Map;for(const t of e)s.has(t.globalId)||(s.set(t.globalId,!0),r.results.elements.push(t));const i=[...this.traceResults];i.splice(t,0,r),this.traceResults=i,null!==r.results&&(this.selectOnComplete&&this.mergeSelection(!0,r.trace),this.showGraphicsOnComplete&&this.addResultGraphicToView(r,r.graphicColor),this.enableResultArea&&r.resultArea.show&&this.addResultAreaToMap(r))}else{const r=[...this.traceResults];r.splice(t,0,e),this.traceResults=r}this._activeProgress=!1}else{this._activeProgress=!1;const r=[...this.traceResults];r.splice(t,0,e),this.traceResults=r}})).catch((e=>{throw this._activeProgress=!1,e}))}))),!0)}changeResultAreaColor(e,t){e.resultArea&&(e.resultArea.color=t,this._resultAreaHandler?.changeResultAreaColor(e.trace.globalId,t,this.view.map))}changeResultGraphicColor(e,t){const r=[...this.traceResults];r.length>0&&r.forEach((r=>{r.trace.globalId===t.trace.globalId&&(r.graphicColor=e,r.graphicEnabled=!0)})),this.traceResults=r,this.removeResultGraphicFromView(t),this.addResultGraphicToView(t,e)}changeFlagSymbol(e,t){this._flags.length>0&&this._flags.forEach((r=>{r.type===e&&t&&r.mapGraphic&&(r.mapGraphic.symbol=t)}))}checkCanTrace(){const e={status:!0,issues:[]};let t=!1;const r=this._flags.some((e=>"starting-point"===e.type)),s=this._flags.filter((e=>null!==e.allTerminals));s.length>0&&(t=s.some((e=>e.selectedTerminals.length<=0)));let i=[];return r?(i=this._traces.filter((e=>e.selected)),i.length<=0?(e.status=!1,e.issues=["noTrace"],t&&(e.status=!1,e.issues=["noTrace","noTerminalSelected"])):t&&(e.status=!1,e.issues=["noTerminalSelected"])):(i=this._traces.filter((e=>!0===e.selected)),i.length>0?(e.status=!1,e.issues=["noStart"],t&&(e.status=!1,e.issues=["noStart","noTerminalSelected"])):(e.status=!1,e.issues=["noStart","noTrace"],t&&(e.status=!1,e.issues=["noStart","noTrace","noTerminalSelected"]))),e}checkSelectionExist(){let e=!1;return this._highlightHandler.some((t=>{t&&(e=!0)})),e}clearResult(e){if(!this.view)return;let t=this.traceResults;if(t.length>0){const r=t.filter((t=>t.trace.globalId===e.globalId));r.length>0&&(this.removeResultGraphicFromView(r[0]),this.removeResultAreaFromMap(r[0])),t=t.filter((t=>t.trace.globalId!==e.globalId))}this.traceResults=t,0===t.length?(this._resultAreaHandler?.removeResultAreaGrahicsLayer(this.view.map),this.removeSelection(),this.emit("clear-selection",{resultSet:[]})):this.mergeSelection(!1,e)}createResultAreaGeometries(e,t,r){if(!this.view||!this.resultAreaProperties)return;let s;if("convexhull"===this.resultAreaProperties?.type?s=this._resultAreaHandler?.createConvexHull(t,e.resultArea?.distance,e.resultArea?.unit):t&&(s=this._resultAreaHandler?.createBuffer(t,r,e.resultArea?.unit,!0)),s&&Array.isArray(s)){if(s.length>0)for(const i of s){const t=this.getResultAreaAttributes(e,i),r=this._resultAreaHandler?.createResultAreaGraphic(i,t,e.resultArea?.areaUnit,this.messages,this.messagesUnits,e.resultArea?.color);r&&this._resultAreaHandler?.addResultAreaToMap(r,this.view.map)}}else{const t=this.getResultAreaAttributes(e,s),r=this._resultAreaHandler?.createResultAreaGraphic(s,t,e.resultArea?.areaUnit,this.messages,this.messagesUnits,e.resultArea?.color);r&&this._resultAreaHandler?.addResultAreaToMap(r,this.view.map)}}executeTrace(e,t,r){const s=this._processFlags(r.traceLocations);return r.traceLocations=s,b(t,r,{timeout:this._traceTimeout}).then((t=>({trace:e,results:t,selectionEnabled:!1,graphicEnabled:!1,graphicColor:this.defaultGraphicColor,status:"success",date:new Date}))).catch((t=>({trace:e,results:null,selectionEnabled:!1,graphicEnabled:!1,graphicColor:this.defaultGraphicColor,status:t.message,date:new Date})))}getResultAreaAttributes(e,r){const{messages:s}=this,i=[],a=[];this._flags.forEach((e=>{const t=e.displayValue?.field+":"+e.displayValue?.value+";"+s.attributeStrings.globalid+":"+e.globalId+";"+s.attributeStrings.terminalid+":"+e.terminalId+";"+s.attributeStrings.x+":"+e.mapPoint?.x+";"+s.attributeStrings.y+":"+e.mapPoint?.y;"starting-point"===e.type?i.push(t):a.push(t)}));return{traceId:e.trace.globalId,traceName:e.trace.title,traceDescription:e.trace.description??"",startingPoints:i.toString(),barriers:a.toString(),version:this.gdbVersion,username:t.credentials[0].userId,date:e.date,elementCount:e.results?.elements.length,functionResult:JSON.stringify(e.results?.globalFunctionResults),areaStatistic:this._geometryHandler.calculateArea(r,e.resultArea?.areaUnit)}}getValidSources(){let e=[];const t=this.utilityNetwork.dataElement?.domainNetworks??[];for(const r of t)e=e.concat(r.junctionSources),e=e.concat(r.edgeSources);return e}async loadUtilityNetwork(){const{view:e}=this;if(!e)return null;if(await e.when(),this.utilityNetwork){if(this.utilityNetwork.loaded||await this.utilityNetwork.load(),this.utilityNetwork instanceof y){try{const t=e.map;await t.loadAll(),this._loadUNSupportItems()}catch(i){this._loadUNSupportItems()}return this.utilityNetwork}return null}const t=e.map,r=t.utilityNetworks?.at(0);if(r){if(await r.load(),this.utilityNetwork=r,!await E(r))throw new s("utility-network:no-user-type-extension","User type extension not found");try{await t.loadAll(),this._loadUNSupportItems()}catch(i){}finally{this._loadUNSupportItems()}return r}return null}manageFilterBarrier(e,t){const r=[...this._flags];r.forEach((r=>{r.globalId===t.globalId&&"barrier"===t.type&&r.id===t.id&&(r.isFilterBarrier=e)})),this._flags=r}mergeSelection(e,t){let r=[];const s=[...this.traceResults],i=t.globalId;s.forEach((t=>{i===t.trace.globalId&&(t.selectionEnabled=e),t.selectionEnabled&&null!=t.results&&null!==t.results.elements&&(r=[...r,...t.results.elements??[]])})),this.selectResults([...new Set(r)])}async queryFeaturesById(e){const{view:t}=this;if(!t)return null;const s=m(this.utilityNetwork,e),i={layerUrl:s[0].layerUrl,objectIds:s[0].objectIds,outFields:["*"]},a=t.map?.allTables.toArray().filter((e=>e?.parsedUrl?.path===s[0].layerUrl)).filter(g)??[];this._getUniqueMapLayerViews(t).filter((({layer:e})=>e?.parsedUrl?.path===s[0].layerUrl)).forEach((({layer:e})=>{"feature"!==e.type&&"subtype-group"!==e.type||a.push(e)}));const l=(await Promise.all(a.map((async e=>{const s={layers:new r([e]),layerInfos:[i],returnGeometry:!0,outSpatialReference:t.spatialReference},[a]=await f(s,!1);return a})))).filter((({featureSet:e})=>e.features.length>0));return l.length>0?l:null}queryFlagByHitTest(e,t,r){return this._lookupFlagByHit(e).then((e=>{const{view:s}=this;if(!s)return!1;if(e.length>0){const s=[...this._flags],i=r;return e.forEach((e=>{const r=e.graphic,a=r.attributes.hasOwnProperty("GLOBALID")?r.attributes.GLOBALID:r.attributes.globalid;if(s.filter((e=>e.globalId===a)).length<=0){const e=this._graphicHandler.getFlagGraphic(r.mapPoint,t,r,i);this._getGraphicLayer(G)?.add(e),s.push({...r,type:t,globalId:r.attributes.globalid||r.attributes.GLOBALID,details:r,mapGraphic:e,id:s.length+1})}else if(null!==r.percentAlong){const e=this._graphicHandler.getFlagGraphic(r.mapPoint,t,r,i);this._getGraphicLayer(G)?.add(e),s.push({...r,type:t,globalId:r.attributes.globalid||r.attributes.GLOBALID,details:r,mapGraphic:e,id:s.length+1})}})),this._flags=s,!0}return!1}))}removeResultGraphicFromView(e){const{view:t}=this;if(!t)return;const r=this._getGraphicLayer(L)?.graphics;e.graphicEnabled=!1;const s=r?.filter((t=>t.attributes[t.attributes.hasOwnProperty("GLOBALID")?"GLOBALID":"globalid"]===e.trace.globalId));s?.forEach((e=>{this._getGraphicLayer(L)?.remove(e)}))}removeFlag(e){const t=this._flags.filter((t=>{if(t.id!==e.id)return t}));this._removeGraphic(e),this._flags=t}removeResultAreaGrahicsLayer(){this._resultAreaHandler?.removeResultAreaGrahicsLayer(this.view.map)}removeResultAreaFromMap(e){e.resultArea.show=!1,this._resultAreaHandler?.removeResultArea(e.trace.globalId,this.view?.map)}removeSelection(){this._highlightHandler.forEach((e=>{e&&e.remove()})),this._highlightHandler=[]}removeTerminal(e,t){const r=[...this._flags];r.forEach((r=>{if(r.globalId===t.globalId&&t.selectedTerminals?.includes(parseInt(e,10))){const s=t.selectedTerminals.indexOf(parseInt(e,10));r.selectedTerminals?.splice(s,1)}})),this._flags=r}removeFlagsOnLoadWatcher(){this._watchHandler&&null!==this._watchHandler&&this._watchHandler.remove()}reset(){this._flags=[],this.traceResults=[];const e=[...this._traces];e.forEach((e=>{e.selected=!1})),this._traces=e,this.view&&(this._getGraphicLayer(L)?.removeAll(),this._getGraphicLayer(G)?.removeAll(),this.removeResultAreaGrahicsLayer(),this.removeSelection(),this.emit("clear-selection",{resultSet:[]}))}selectFeaturesById(e){const{view:t}=this;if(!t)return;const r=m(this.utilityNetwork,e);this._getUniqueMapLayerViews(t).forEach((e=>{U(e)&&e.layer?.parsedUrl?.path===r[0].layerUrl&&P(e)&&this._highlightHandler.push(e.highlight(r[0].objectIds))}))}selectResults(e){if(e.length>0){this.removeSelection();const t=this._groupResultsByNetworkSource(e),r=[];for(const e in t)this.selectFeaturesById(t[e]),r.push(this.queryFeaturesById(t[e]));Promise.all(r).then((e=>{this.emit("select-features",{resultSet:e})}))}else this.removeSelection(),this.emit("clear-selection",{resultSet:[]})}selectTraces(e,t){const r=[...this._traces];r.forEach((r=>{t===r.globalId&&(r.selected=e)})),this._traces=r}selectTracesOnLoad(){this.utilityNetwork.hasOwnProperty("sharedNamedTraceConfigurations")&&(this._traces=[...this.utilityNetwork.sharedNamedTraceConfigurations],this._traces.forEach((e=>{e.selected=!1,this.selectedTraces.includes(e.globalId)&&(e.selected=!0)})))}zoomToAsset(e){this.view?.goTo(e).catch((e=>console.error(e)))}_loadUNSupportItems(){this._populateOutfields(),this._createGraphicLayer(G),this._createGraphicLayer(L),this._validUNLayers=this._utilityHelper.getValidUtilityNetworkLayers(this.view.map,this.utilityNetwork)}_getUniqueMapLayerViews(e){const t=[];return e.layerViews.filter((({layer:{type:e}})=>"feature"===e||"group"===e||"subtype-group"===e)).toArray().forEach((e=>{switch(e.layer.type){case"group":if(N(e))for(const r of e.layerViews)t.push(r);break;case"subtype-group":t.push(e);break;default:t.some((t=>t.layer.id===e.layer.id))||t.push(e)}})),t}_processFlags(e){const t=[];return e.forEach((e=>{if(null!==e.selectedTerminals&&e.selectedTerminals.length>0)e.selectedTerminals.forEach((r=>{const s=new v({globalId:e.globalId,percentAlong:e.percentAlong,terminalId:r,type:e.type,isFilterBarrier:e.isFilterBarrier});t.push(s)}));else{const r=new v({globalId:e.globalId,percentAlong:e.percentAlong,terminalId:null,type:e.type,isFilterBarrier:e.isFilterBarrier});t.push(r)}})),t}_getDisplayField(e){return"subtype-sublayer"===e?.layer?.type?this._getDisplayFieldBySublayer(e):this._getDisplayFieldByFeatureLayer(e)}_getDisplayFieldBySublayer(e){let t="",r="";const s=e.layer;t=this._checkParentForData(s,"displayField");for(const i in e.attributes){const a=i.toLowerCase();a===t?.toLowerCase()?(r=e.attributes[i],"assetgroup"===a||"assettype"===a?r=this._checkSubtype(s,s.subtypeCode):(r=this._checkDomain(s.fields,i,r),"string"==typeof r&&(r=this._defaultDisplayField(r,s)))):(r=this._checkDomain(s.fields,i,r),"string"==typeof r&&(r=this._defaultDisplayField(r,s)))}return{field:t,value:r.toString()}}_getDisplayFieldByFeatureLayer(e){const t=e.layer;let r=t.displayField,s="";for(const i in e.attributes){const a=i.toLowerCase();if(a===r?.toLowerCase())if(s=e.attributes[i],"assetgroup"===a||"assettype"===a){let a=e.attributes[t.typeIdField.toUpperCase()];a||(a=e.attributes[t.typeIdField.toLowerCase()]),r=t.typeIdField,s=this._checkSubtype(t,a),""===r&&(t.templates&&t.templates.length>0?(r=t.templates[0]?.name,s=t.templates[0]?.name):(r=t.displayField,s=e.attributes[i]))}else s=this._checkDomain(t.fields,i,s),"string"==typeof s&&(s=this._defaultDisplayField(s,t));else s=this._checkDomain(t.fields,i,s),"string"==typeof s&&(s=this._defaultDisplayField(s,t))}return{field:r,value:s?s.toString():""}}_checkSubtype(e,t){let r=t;if("subtype-sublayer"===e.type){const s=this._checkParentForData(e,"subtypes");s?.length>0&&s.forEach((e=>{e.code===t&&(r=e.name)}))}else if(null!=e.types&&e.types.length>0){const s=e.types.filter((e=>e.id===t));s.length>0&&(r=s[0].name)}return r}_checkDomain(e,t,r){let s=r;const i=e.filter((e=>e.name.toLowerCase()===t.toLowerCase()));if(i.length>0&&H(i[0].domain)&&i[0].domain?.codedValues){const e=i[0].domain.codedValues.filter((({code:e})=>e===r));e.length>0&&(s=e[0].name)}return s}_checkParentForData(e,t){return e.parent?.[t]??null}_defaultDisplayField(e,t){return e.trim()?e:t.templates&&t.templates?.length>0?t.templates[0].name:t.title}_groupBy(e,t){return e.reduce(((e,r)=>((e[r[t]]=e[r[t]]||[]).push(r),e)),{})}_groupResultsByNetworkSource(e){if(e.length>0){return this._groupBy(e,"networkSourceId")}return[]}_lookupFlagByHit(e){return this.view.hitTest(e.screenPoint,{include:this._validUNLayers}).then((t=>{const r=[];if(t.results.length>0){const s=t.results.find((e=>null!==e.layer));if(s.graphic&&null!=s.graphic.geometry)if("polyline"===s.graphic.geometry.type){const t=this._geometryHandler.getPercentageAlong(s.graphic.geometry,e.mapPoint,s.graphic.geometry.spatialReference),i=this._getDisplayField(s.graphic);s.graphic.terminalId=null,s.graphic.isFilterBarrier=!1,s.graphic.allTerminals=null,s.graphic.selectedTerminals=null,s.graphic.percentAlong=t,s.graphic.displayValue=i,s.graphic.mapPoint=s.mapPoint,r.push(s)}else if(("point"===s.graphic.geometry.type||"polygon"===s.graphic.geometry.type)&&null!==this.utilityNetwork){const e=this.utilityNetwork.getTerminalConfiguration(s.graphic),t=this._getDisplayField(s.graphic);s.graphic.terminalId=e?e.terminals[0].id||null:1,s.graphic.isFilterBarrier=!1,s.graphic.allTerminals=e??null,s.graphic.selectedTerminals=[e?e.terminals[0].id||null:1],s.graphic.percentAlong=null,s.graphic.displayValue=t,s.graphic.mapPoint=s.mapPoint,r.push(s)}}return r}))}async _populateOutfields(){const e=this.view?.map,t=this.getValidSources();e?.layers.forEach((e=>{"group"===e.type?e.layers.forEach((e=>{t.some((t=>t.layerId===e.layerId))&&e.fields.some((e=>"assetgroup"===e.name.toLowerCase()))&&(e.outFields=["assetgroup","assettype","globalid","objectid"])})):t.some((t=>t.layerId===e.layerId))&&e.fields.some((e=>"assetgroup"===e.name.toLowerCase()))&&(e.outFields=["assetgroup","assettype","globalid","objectid"])}))}_removeGraphic(e){this._getGraphicLayer(G)?.remove(e.mapGraphic)}_createGraphicLayer(e){const{map:t}=this.view;if(!t.findLayerById(e)){const r=new p({title:e,listMode:"hide",id:e});t.add(r)}}_getGraphicLayer(e){const{map:t}=this.view;if(t){const r=t.findLayerById(e);if(r&&C(r))return r}return null}};e([o()],B.prototype,"_activeProgress",void 0),e([o()],B.prototype,"_flags",void 0),e([o()],B.prototype,"_traces",void 0),e([o()],B.prototype,"defaultGraphicColor",void 0),e([o()],B.prototype,"enableResultArea",void 0),e([o()],B.prototype,"flags",void 0),e([o()],B.prototype,"gdbVersion",void 0),e([o()],B.prototype,"messages",void 0),e([o()],B.prototype,"messagesUnits",void 0),e([o()],B.prototype,"resultAreaProperties",null),e([o()],B.prototype,"selectedTraces",void 0),e([o()],B.prototype,"selectOnComplete",void 0),e([o()],B.prototype,"showGraphicsOnComplete",void 0),e([o()],B.prototype,"showSelectionAttributes",void 0),e([o({readOnly:!0})],B.prototype,"state",null),e([o()],B.prototype,"traceResults",void 0),e([o()],B.prototype,"utilityNetwork",void 0),e([o({value:null})],B.prototype,"view",null),B=e([n("esri.widgets.UtilityNetworkTrace.UtilityNetworkTraceViewModel")],B);const j=B;export{j as default};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.28/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import e from"../../../Graphic.js";import r from"../../../layers/GraphicsLayer.js";import t from"../../../symbols/SimpleFillSymbol.js";import{GeometryHandler as o}from"./GeometryHandler.js";const a
|
|
5
|
+
import e from"../../../Graphic.js";import r from"../../../layers/GraphicsLayer.js";import t from"../../../symbols/SimpleFillSymbol.js";import{GeometryHandler as o}from"./GeometryHandler.js";const a=`utility-network-trace-result-area-${Date.now()}`;function i(e){return"graphics"===e.type}class s{constructor(){this.traceInformation={},this._geometryHandler=new o}addResultAreaToMap(e,r){const t=this._createGraphicLayer(r);t&&i(t)&&(t.add(e),t.emit("add-result-area",e))}changeResultAreaColor(e,r,o){const a=this._findGraphicsByTraceId(e,o);a&&a.forEach((e=>{const o=new t({color:r.color,style:"solid",outline:{color:r.color,width:1}});e.symbol=o}))}createBuffer(e,r,t,o){return this._geometryHandler.createBuffer(e,r,t,o)}createConvexHull(e,r,t){const o=this._geometryHandler.createConvexHull(e);return r>0&&o?this.createBuffer(o,[r],t,!1):o}createResultAreaGraphic(r,o,a,i,s,n){const l=new t({color:n.color,style:"solid",outline:{color:n.color,width:1}}),c=[];for(const e in o)c.push({fieldName:e,label:"areaStatistic"===e?i.attributeStrings[e]+" ("+s.units[a]?.abbr+")":i.attributeStrings[e],value:o[e]});return new e({geometry:r,symbol:l,attributes:o,popupTemplate:{title:o.traceName,content:[{type:"fields",fieldInfos:c}]}})}removeResultArea(e,r){const t=r.findLayerById(a);if(t&&i(t)){const o=this._findGraphicsByTraceId(e,r);o&&t.removeMany(o),t.emit("remove-result-area",o)}}removeResultAreaGrahicsLayer(e){if(e){const r=e.findLayerById(a);r&&i(r)&&e.remove(r)}}_createGraphicLayer(e){const t=e.findLayerById(a);if(t&&i(t))return t;const o=new r({title:a,listMode:"hide",id:a});return e.add(o),o}_findGraphicsByTraceId(e,r){const t=r.findLayerById(a);if(t&&i(t)){const r=t.graphics.filter((r=>r.attributes.traceId===e));return r.length>0?r.toArray():null}return null}}export{s as ResultAreaHandler,a as resultAreaGraphicLayer};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.28/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{isFeatureLayer as r}from"../../../layers/support/layerUtils.js";function e(r){return"feature"===r.type}function t(r,e){return r.url.includes(e)}class i{getValidUtilityNetworkLayers(i,l){return i?.allLayers.filter(r).filter((r=>e(r)&&l.isUtilityLayer(r))).filter((r=>t(r,l.featureServiceUrl))).toArray()}}export{i as UtilityHelper};
|
|
5
|
+
import{isFeatureLayer as r}from"../../../layers/support/layerUtils.js";function e(r){return"feature"===r.type}function t(r,e){return r.url.includes(e)}class i{getValidUtilityNetworkLayers(i,l){const s=[];return i?.allLayers.forEach((i=>{"group"===i.type?s.push(...i.layers.filter(r).filter((r=>e(r)&&l.isUtilityLayer(r))).filter((r=>t(r,l.featureServiceUrl))).toArray()):"subtype-group"===i.type?s.push(...i.sublayers.filter((r=>t(r,l.featureServiceUrl))).toArray()):r(i)&&e(i)&&l.isUtilityLayer(i)&&t(i,l.featureServiceUrl)&&s.push(i)})),s}}export{i as UtilityHelper};
|