@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"../core/Collection.js";import{eventKey as i}from"../core/events.js";import{watch as s,on as n,initial as r}from"../core/reactiveUtils.js";import{property as o}from"../core/accessorSupport/decorators/property.js";import{cast as l}from"../core/accessorSupport/decorators/cast.js";import"../core/arrayUtils.js";import"../core/has.js";import{subclass as a}from"../core/accessorSupport/decorators/subclass.js";import d from"./Widget.js";import c from"./BasemapLayerList/BasemapLayerListViewModel.js";import h from"./LayerList/ListItem.js";import{findSelectedItem as u}from"./LayerList/support/layerListUtils.js";import{loadCalciteComponents as m}from"./support/componentsUtils.js";import{globalCss as g}from"./support/globalCss.js";import{Heading as p,incrementHeadingLevel as _}from"./support/Heading.js";import{legacyIcon as b}from"./support/legacyIcon.js";import{accessibleHandler as y}from"./support/decorators/accessibleHandler.js";import{messageBundle as f}from"./support/decorators/messageBundle.js";import{vmEvent as I}from"./support/decorators/vmEvent.js";import{tsx as v}from"./support/jsxFactory.js";import"./support/widgetUtils.js";import C from"sortablejs";const T=t.ofType(h);function L(e,t,i){e.splice(i,0,e.splice(t,1)[0])}const A=".*\\S+.*",S="root-layers",$="data-layer-uid",E="layerUid",w="esri-basemap-layer-list",k=`${w}__item`,M=`${w}__list`,B={base:w,widgetIcon:b.layers,newUI:`${w}--new-ui`,titleContainer:`${w}__title-container`,mainHeading:`${w}__main-heading`,editingCard:`${w}__editing-card`,editingInput:`${w}__editing-input`,editingActions:`${w}__editing-actions`,editButton:`${w}__edit-button`,editButtonIcon:`${w}__edit-button-icon`,submitButton:`${w}__submit-button`,cancelButton:`${w}__cancel-button`,noItems:`${w}__no-items`,horizontalRule:`${w}__hr`,list:M,listHeading:`${M}-heading`,listRoot:`${M}--root`,listExclusive:`${M}--exclusive`,listEmpty:`${w}__list--empty`,listEmptyState:`${w}__list-empty-state`,listInherited:`${M}--inherited`,listIndependent:`${M}--independent`,item:k,itemOnlyChild:`${k}--only-child`,itemContent:`${k}-content`,itemMessage:`${k}--has-message`,itemInvisible:`${k}--invisible`,itemInvisibleAtScale:`${k}--invisible-at-scale`,itemChildren:`${k}--has-children`,itemSelectable:`${k}--selectable`,itemContainer:`${k}-container`,actionsMenu:`${k}-actions-menu`,actionsMenuItem:`${k}-actions-menu-item`,actionsMenuItemActive:`${k}-actions-menu-item--active`,actions:`${k}-actions`,actionsList:`${k}-actions-list`,action:`${k}-action`,actionIcon:`${k}-action-icon`,actionImage:`${k}-action-image`,actionTitle:`${k}-action-title`,actionToggle:`${w}__action-toggle`,actionToggleOn:`${w}__action-toggle--on`,label:`${k}-label`,message:`${k}-message`,title:`${k}-title`,statusIndicator:`${w}__status-indicator`,publishing:`${w}__publishing`,updating:`${w}__updating`,connectionStatus:`${w}__connection-status`,connectionStatusConnected:`${w}__connection-status--connected`,toggleVisible:`${k}-toggle`,toggleVisibleIcon:`${k}-toggle-icon`,toggleIcon:`${k}-toggle-icon`,radioIcon:`${k}-radio-icon`,childToggle:`${w}__child-toggle`,childToggleOpen:`${w}__child-toggle--open`,childOpened:`${w}__child-toggle-icon--opened`,childClosed:`${w}__child-toggle-icon--closed`,childClosed_RTL:`${w}__child-toggle-icon--closed-rtl`,sortableChosen:`${w}--chosen`},R={actions:"actions",actionSection:"action-section",baseItems:"base-items",referenceItems:"reference-items"},O={exclusive:"exclusive",inherited:"inherited",independent:"independent"};function x(e){const{actionsOpen:t,children:i}=e;t&&(e.actionsOpen=!1),i.forEach((e=>x(e)))}const j={baseLayers:!0,referenceLayers:!0,statusIndicators:!0,errors:!1};let N=class extends d{constructor(e,t){super(e,t),this._tooltipReferenceMap=new Map,this._editingTitle=!1,this._editTitleInput=null,this._editTitleButton=null,this._focusOnElement=null,this._sortableBaseLayers=null,this._sortableReferenceLayers=null,this._sortableBaseLayersNode=null,this._sortableReferenceLayersNode=null,this._focusSortUid=null,this.visibleItems=null,this.editingEnabled=!1,this.headingLevel=2,this.iconClass=B.widgetIcon,this.messages=null,this.messagesCommon=null,this.multipleSelectionEnabled=!1,this.selectedItems=new T,this.style="classic",this.viewModel=new c,this.visibleElements={...j}}initialize(){const{baseItems:e,referenceItems:t}=this;this._setVisibleItems(),this.addHandles([s((()=>this.visibleElements),(()=>{this._itemsChanged(e,R.baseItems),this._itemsChanged(t,R.referenceItems)})),n((()=>this.baseItems),"change",(()=>{this._itemsChanged(e,R.baseItems)})),n((()=>this.referenceItems),"change",(()=>this._itemsChanged(t,R.referenceItems))),s((()=>this.editingEnabled),(()=>this._toggleSorting()),r)])}loadDependencies(){return m({icon:()=>import("@esri/calcite-components/dist/components/calcite-icon.js"),tooltip:()=>import("@esri/calcite-components/dist/components/calcite-tooltip.js")})}destroy(){this._destroyBaseSortable(),this._destroyReferenceSortable(),this._tooltipReferenceMap.clear()}get basemapTitle(){return this.viewModel.basemapTitle}set basemapTitle(e){this.viewModel.basemapTitle=e}get baseListItemCreatedFunction(){return this.viewModel.baseListItemCreatedFunction}set baseListItemCreatedFunction(e){this.viewModel.baseListItemCreatedFunction=e}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get referenceListItemCreatedFunction(){return this.viewModel.referenceListItemCreatedFunction}set referenceListItemCreatedFunction(e){this.viewModel.referenceListItemCreatedFunction=e}get baseItems(){return this.viewModel.baseItems}get referenceItems(){return this.viewModel.referenceItems}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}castVisibleElements(e){return{...j,...e}}triggerAction(e,t){return this.viewModel.triggerAction(e,t)}render(){const{state:e}=this.viewModel,t={[B.newUI]:"modern"===this.style,[g.hidden]:"loading"===e,[g.disabled]:"disabled"===e},i=this._renderItemTooltips(),s=this._renderReferenceSection(),n=this._renderBaseSection(),r=s&&n?v("hr",{class:B.horizontalRule}):null,o=[this._renderTitleContainer(),s,r,n];return v("div",{class:this.classes(B.base,g.anchor,g.panel,t)},[i,o])}_renderItemTooltip(e){const{_tooltipReferenceMap:t,messages:i}=this;return e?v("calcite-tooltip",{referenceElement:t.get(e.uid)},i.layerIncompatibleTooltip):null}_renderItemTooltipNodes(e){const{incompatible:t,children:i}=e;return[t?this._renderItemTooltip(e):null,...!t&&i?i.toArray().map((e=>this._renderItemTooltipNodes(e))):[]]}_renderItemTooltips(){return this.visibleItems?.toArray().map((e=>this._renderItemTooltipNodes(e)))??[]}_renderEditingInput(){const{messages:e}=this,{basemapTitle:t}=this.viewModel;return v("label",{class:B.editingInput},e.basemapTitle,v("input",{bind:this,class:g.input,title:e.basemapTitle,"aria-label":e.basemapTitle,placeholder:e.basemapTitle,type:"text",role:"textbox",required:!0,pattern:A,value:t??void 0,afterCreate:this._storeEditTitleInput,afterUpdate:this._focusEditElement}))}_renderCancelButton(){const{messagesCommon:e}=this;return v("button",{title:e.cancel,"aria-label":e.cancel,type:"button",bind:this,class:this.classes(g.button,g.buttonTertiary),onclick:this._toggleEditingTitle},e.cancel)}_renderSubmitButton(){const{messagesCommon:e}=this;return v("button",{title:e.form.submit,"aria-label":e.form.submit,type:"submit",bind:this,class:g.button},e.form.ok)}_renderEditingForm(){return v("div",{class:B.editingCard},v("form",{bind:this,onsubmit:this._formSubmit},this._renderEditingInput(),v("div",{class:B.editingActions},this._renderCancelButton(),this._renderSubmitButton())))}_renderBasemapTitle(){const{basemapTitle:e}=this.viewModel;return v(p,{level:this.headingLevel,class:this.classes(g.heading,B.mainHeading)},e)}_renderEditTitleButton(){const{_editingTitle:e,editingEnabled:t,messagesCommon:i}=this;return t&&!e?v("button",{bind:this,class:B.editButton,title:i.edit,"aria-label":i.edit,onclick:this._toggleEditingTitle,afterCreate:this._storeEditTitleButton,afterUpdate:this._focusEditElement,"data-node-ref":"_editButtonNode",type:"button"},v("span",{"aria-hidden":"true",class:this.classes(b.edit,B.editButtonIcon)})):null}_renderTitleContainer(){return v("div",{class:B.titleContainer},this._editingTitle?this._renderEditingForm():this._renderBasemapTitle(),this._renderEditTitleButton())}_renderNoLayersInfo(e,t){return v("div",{key:t,class:B.noItems},e)}_renderList(e,t){const{messages:i}=this,s="reference"===t?this._destroyReferenceSortable:this._destroyBaseSortable;return v("ul",{key:t,"aria-label":i.widgetLabel,role:this.editingEnabled&&e.length?"listbox":void 0,afterCreate:this._sortNodeCreated,afterRemoved:s,"data-node-ref":t,bind:this,class:this.classes(B.list,B.listRoot,B.listIndependent)},e.map((i=>this._renderItem({item:i,parent:null,itemType:t,isOnlyChild:1===e.length}))))}_renderBaseHeader(){return v(p,{key:"base-heading",level:_(this.headingLevel),class:this.classes(g.heading,B.listHeading)},this.messages.baseHeading)}_renderBaseSection(){const{baseItems:e,messages:t,visibleElements:i}=this;if(!i.baseLayers)return null;const s=this._getItems(e),n="base";return[this._renderBaseHeader(),[0===s.length?this._renderNoLayersInfo(t.noBaseLayers,n):null,this._renderList(s,n)]]}_renderReferenceHeader(){return v(p,{key:"reference-heading",level:_(this.headingLevel),class:this.classes(g.heading,B.listHeading)},this.messages.referenceHeading)}_renderReferenceSection(){const{referenceItems:e,messages:t,visibleElements:i}=this;if(!i.referenceLayers)return null;const s=this._getItems(e),n="reference";return[this._renderReferenceHeader(),[0===s.length?this._renderNoLayersInfo(t.noReferenceLayers,n):null,this._renderList(s,n)]]}_renderChildrenToggle(e,t){const{messagesCommon:i}=this,{children:s}=e,n=!!e.error,r=!!s.length&&!n,o={[B.childToggleOpen]:e.open},l=e.open?i.collapse:i.expand;return r?v("span",{onclick:this._toggleChildrenClick,onkeydown:this._toggleChildrenClick,"data-item":e,key:"toggle-children",class:this.classes(B.childToggle,o),tabIndex:0,role:"button","aria-controls":t,"aria-label":l,title:l},v("span",{"aria-hidden":"true",class:this.classes(B.childClosed,b.rightTriangleArrow)}),v("span",{"aria-hidden":"true",class:this.classes(B.childOpened,b.downArrow)}),v("span",{"aria-hidden":"true",class:this.classes(B.childClosed_RTL,b.leftTriangleArrow)})):null}_renderItemMessage(e){return e.error?v("div",{key:"esri-basemap-layer-list__error",class:B.message,role:"alert"},v("span",{"aria-hidden":"true",class:b.noticeTriangle}),this.messages.layerError):e.incompatible?v("div",{key:"esri-basemap-layer-list__incompatible",class:B.message,role:"alert"},v("span",{bind:this,tabIndex:0,"aria-hidden":"true",class:b.noticeTriangle,afterCreate:t=>this._setTooltipReference(t,e)}),this.messages.layerIncompatible):null}_renderActionsMenuIcon(e,t){const{messagesCommon:i}=this,s={[B.actionsMenuItemActive]:e.actionsOpen};return v("div",{key:"actions-menu-toggle","data-item":e,bind:this,onclick:this._toggleActionsOpen,onkeydown:this._toggleActionsOpen,class:this.classes(B.actionsMenuItem,s),tabIndex:0,role:"button","aria-controls":t,"aria-label":i.options,title:i.options},v("span",{"aria-hidden":"true",class:b.handleHorizontal}))}_renderActionsMenu(e,t,i,s){const{panel:n}=e,r=n&&n.visible?this._renderPanelButton(n):null,o=1===i&&this._getSingleActionButton(t),l=o?this._renderAction({item:e,action:o,singleAction:!0}):null,a=!o&&i?this._renderActionsMenuIcon(e,s):null;return a||r||o?v("div",{key:"actions-menu",class:B.actionsMenu},r,l,a):null}_renderChildList(e,t){const{editingEnabled:i}=this,{visibilityMode:s,children:n}=e,r=this._hasChildren(e),o=!r&&i&&"group"===e.layer?.type,{exclusive:l,inherited:a}=O,d={[B.listEmpty]:!r,[B.listExclusive]:s===l,[B.listInherited]:s===a,[B.listIndependent]:s!==a&&s!==l};return r||o?r?v("ul",{bind:this,key:"list-items",id:t,"data-group":e.uid,"data-item":e,afterCreate:this._sortNodeCreated,afterUpdate:this._sortNodeCreated,class:this.classes(B.list,d),"aria-expanded":e.open?"true":"false",role:i?"listbox":s===l?"radiogroup":"group",hidden:!e.open||null},n?.map((t=>this._renderItem({item:t,parent:e}))).toArray()):v("div",{bind:this,key:"list-items",id:t,class:B.listEmptyState},this.messages.noItemsToDisplay):null}_renderItemContent(e,t,i){const{id:s}=this,n=`${s}_${e.uid}`,r=`${n}_actions`,o=`${n}__list`,{panel:l}=e,a=this._filterActions(e.actionsSections),d=this._countActions(a);return[v("div",{key:"list-item-container",class:B.itemContainer},this._renderChildrenToggle(e,o),this._renderLabel(e,t,i),this._renderActionsMenu(e,a,d,r)),this._renderItemMessage(e),d?this._renderActionsSections(e,a,r):null,l&&l.open&&!l.disabled?l.render():null,this._renderChildList(e,o)]}_renderItem({item:e,parent:t,itemType:i,isOnlyChild:s}){const{style:n,id:r,editingEnabled:o,selectedItems:l}=this,a=`${`${r}_${e.uid}`}__title`,d=this._hasMessage(e),c=this._hasChildren(e),h={[B.itemChildren]:c,[B.itemMessage]:!!d,[B.itemInvisible]:"modern"===n&&!e.visible,[B.itemInvisibleAtScale]:!e.visibleAtCurrentScale,[B.itemSelectable]:o};if(o){const n={[$]:e.layer?.uid};return v("li",{key:`item-with-selection-${e.uid}`,bind:this,afterCreate:this._focusListItem,afterUpdate:this._focusListItem,class:this.classes(B.item,h,{[B.itemOnlyChild]:!!s}),"aria-labelledby":a,onclick:this._toggleSelection,onkeydown:this._selectionKeydown,"data-item-type":i,"data-item":e,tabIndex:0,"aria-selected":u(e,l)?"true":"false",role:"option",...n},this._renderItemContent(e,t,a))}return v("li",{key:`item-no-selection-${e.uid}`,bind:this,afterCreate:this._focusListItem,afterUpdate:this._focusListItem,class:this.classes(B.item,h),"aria-labelledby":a},this._renderItemContent(e,t,a))}_renderConnectionIcon(e){const{connectionStatus:t}=e;return null!=t?v("calcite-icon",{icon:"connected"===t?"check-circle":"offline",scale:"s"}):null}_renderItemStatus(e,t){const{visibleElements:i}=this;if(!i.statusIndicators)return null;const{connectionStatus:s,publishing:n,updating:r}=e,o=r&&!t,l=!!s;return v("span",{class:this.classes({[B.statusIndicator]:!0,[B.publishing]:n,[B.updating]:o,[B.connectionStatus]:l,[B.connectionStatusConnected]:l&&"connected"===s}),key:"layer-item-status"},this._renderConnectionIcon(e))}_renderItemTitle(e,t){const{messages:i}=this,s=e.title||i.untitledLayer,n=e.visibleAtCurrentScale?s:`${s} (${i.layerInvisibleAtScale})`;return v("span",{key:"layer-title-container",id:t,title:n,"aria-label":n,class:B.title},s)}_renderItemToggleIcon({visible:e},t){const{style:i}=this,{exclusive:s}=O,n=t?.visibilityMode,r="modern"===i,o=n===s,l={[B.toggleVisibleIcon]:r,[B.toggleIcon]:r&&!o,[B.radioIcon]:r&&o,[b.radioChecked]:o&&e,[b.radioUnchecked]:o&&!e,[b.visible]:!o&&e,[b.nonVisible]:!o&&!e};return v("span",{key:"item-toggle-icon",class:this.classes(l),"aria-hidden":"true"})}_renderItemToggle(e,t,i){const{editingEnabled:s,messages:n}=this,{exclusive:r}=O,o=t&&t.visibilityMode,l=o===r?"radio":"switch";return v("span",s?{key:"item-toggle-selection-enabled",class:B.toggleVisible,bind:this,onclick:this._toggleVisibility,onkeydown:this._toggleVisibility,"data-item":e,"data-parent-visibility":o,tabIndex:0,"aria-checked":e.visible?"true":"false",title:n.layerVisibility,role:l,"aria-labelledby":i}:{key:"item-toggle",class:B.toggleVisible},this._renderItemToggleIcon(e,t))}_renderLabel(e,t,i){const{editingEnabled:s,style:n,messages:r}=this,{inherited:o,exclusive:l}=O,a=t?.visibilityMode,d=a===l?"radio":"switch",c=this._renderItemTitle(e,i),h=this._renderItemStatus(e,t),u=this._renderItemToggle(e,t,i),m="modern"===n?[c,h,u]:[u,c,h],g=v("div",s?{key:`item-label-no-selection-${e.uid}`,class:B.label}:{key:`item-label-with-selection-${e.uid}`,class:B.label,bind:this,onclick:this._toggleVisibility,onkeydown:this._toggleVisibility,"data-item":e,"data-parent-visibility":a,tabIndex:0,title:r.layerVisibility,"aria-checked":e.visible?"true":"false",role:d,"aria-labelledby":i},m);return a===o||e.error?v("div",{key:`item-label-container-${e.uid}`,class:B.label},this._renderItemTitle(e,i),this._renderItemStatus(e,t)):g}_renderPanelButton(e){const{className:t,open:i,title:s,image:n,disabled:r}=e,o=n||t?t:b.defaultAction,l=this._getIconImageStyles(e),a={[B.actionsMenuItemActive]:i&&!r},d={[B.actionImage]:!!l["background-image"],[g.disabledElement]:e.disabled};return o&&(d[o]=!!o),v("div",{"aria-disabled":e.disabled.toString(),key:`panel-${e.uid}`,bind:this,"data-panel":e,onclick:this._triggerPanel,onkeydown:this._triggerPanel,class:this.classes(B.actionsMenuItem,a),role:"button",tabIndex:e.disabled?void 0:0,title:s,"aria-label":s},v("span",{class:this.classes(d),styles:l}))}_renderActionsSections(e,t,i){const s=t.toArray().map(((t,i)=>v("ul",{key:`${e}-action-section-${i}`,class:B.actionsList},this._renderActionSection(e,t))));return v("div",{role:"group","aria-expanded":e.actionsOpen?"true":"false",key:"actions-section",id:i,class:B.actions,hidden:!e.actionsOpen||null},s)}_renderActionSection(e,t){return(t&&t.toArray()).map((t=>this._renderAction({item:e,action:t})))}_renderActionIcon(e){const{active:t,className:i}=e,s=this._getIconImageStyles(e),n="button"!==e.type||e.image||i?i:b.defaultAction,r={[B.actionImage]:!t&&!!s["background-image"],[b.loadingIndicator]:t,[g.rotating]:t};return n&&!t&&(r[n]=!0),v("span",{key:"action-icon","aria-hidden":"true",class:this.classes(B.actionIcon,r),styles:s})}_renderActionTitle(e,t){return t?null:v("span",{key:"action-title",class:B.actionTitle},e)}_renderAction(e){const{item:t,action:i,singleAction:s}=e,{active:n,disabled:r,title:o}=i,l={[B.actionsMenuItem]:s&&"button"===i.type,[B.action]:n||!s&&"toggle"!==i.type,[B.actionToggle]:!n&&"toggle"===i.type,[B.actionToggleOn]:!n&&"toggle"===i.type&&i.value,[g.disabledElement]:r},a=[this._renderActionIcon(i),this._renderActionTitle(o,s)];return s?v("div",{bind:this,"data-item":t,"data-action":i,role:"button",key:`single-action-${i.uid}`,onclick:this._triggerAction,onkeydown:this._triggerAction,classes:l,tabIndex:0,title:o??void 0,"aria-label":o},a):v("li",{bind:this,"data-item":t,"data-action":i,key:`action-${i.uid}`,onclick:this._triggerAction,onkeydown:this._triggerAction,classes:l,tabIndex:0,role:"button",title:o??void 0,"aria-label":o},a)}_setVisibleItems(){const{referenceItems:e,baseItems:t,visibleElements:i}=this,s=e.concat(t);this.visibleItems=s?.filter((e=>!e.hidden&&(i.errors||!e.error)))}_setTooltipReference(e,t){this._tooltipReferenceMap.set(t.uid,e),this.scheduleRender()}_hasMessage(e){return!!e.error||e.incompatible}_hasChildren(e){return!!e.children.length&&!this._hasMessage(e)}_filterActions(e){return e.map((e=>e.filter((e=>e.visible))))}_destroyReferenceSortable(){const{_sortableReferenceLayers:e}=this;e?.el&&e.destroy(),this._sortableReferenceLayersNode=null}_destroyBaseSortable(){const{_sortableBaseLayers:e}=this;e?.el&&e.destroy(),this._sortableBaseLayersNode=null}_toggleEditingTitle(){const{_editingTitle:e}=this,t=!e;this._editingTitle=t,this._focusOnElement=t?"edit-input":"edit-button",this.scheduleRender()}_storeEditTitleInput(e){this._editTitleInput=e,this._focusEditElement()}_focusEditElement(){this._editTitleInput&&"edit-input"===this._focusOnElement&&(this._focusOnElement=null,this._editTitleInput.focus()),this._editTitleButton&&"edit-button"===this._focusOnElement&&(this._focusOnElement=null,this._editTitleButton.focus())}_storeEditTitleButton(e){this._editTitleButton=e,this._focusEditElement()}_formSubmit(e){e.preventDefault();const t=this._editTitleInput?.value;t?.trim()&&(this.basemapTitle=t),this._toggleEditingTitle()}_itemMovedList(e){const t=H(e.item);if(!t)return;const i=e.to.dataset.nodeRef,s=e.from.dataset.nodeRef,n=e.newIndex;this.viewModel.transferListItem({listItem:t,from:s,to:i,newIndex:n})}_toggleSortingBaseLayers(){const{_sortableBaseLayers:e,_sortableBaseLayersNode:t,editingEnabled:i}=this;if(!t)return;const s=!i;if(e)e.option("disabled",s);else{const e=C.create(t,{dataIdAttr:$,group:S,filter:`.${B.itemOnlyChild}`,fallbackTolerance:4,disabled:s,onSort:()=>this._sortLayersToItems({type:"base",itemIds:e.toArray()}),onAdd:e=>this._itemMovedList(e),chosenClass:B.sortableChosen});this._sortableBaseLayers=e}}_toggleSortingReferenceLayers(){const{_sortableReferenceLayers:e,_sortableReferenceLayersNode:t,editingEnabled:i}=this;if(!t)return;const s=!i;if(e)e.option("disabled",s);else{const e=C.create(t,{dataIdAttr:$,group:S,disabled:s,fallbackTolerance:4,onSort:()=>this._sortLayersToItems({type:"reference",itemIds:e.toArray()}),onAdd:e=>this._itemMovedList(e),chosenClass:B.sortableChosen});this._sortableReferenceLayers=e}}_toggleSorting(){this._toggleSortingBaseLayers(),this._toggleSortingReferenceLayers()}_sortNodeCreated(e){const t=e.getAttribute("data-node-ref");"base"===t&&(this._sortableBaseLayersNode=e),"reference"===t&&(this._sortableReferenceLayersNode=e),this._toggleSorting()}_getItems(e){return e.toArray().filter((e=>!e.hidden&&(this.visibleElements.errors||!e.error)))}_getSingleActionButton(e){return e.reduce((e=>e)).filter((e=>e&&"button"===e.type)).at(0)}_sortLayersToItems({type:e,itemIds:t}){const i="base"===e?this.view?.map?.basemap?.baseLayers:"reference"===e?this.view?.map?.basemap?.referenceLayers:null;i&&i.sort(((e,i)=>{const s=t.indexOf(e.uid),n=t.indexOf(i.uid);return s>n?-1:s<n?1:0}))}_focusListItem(e){const{_focusSortUid:t}=this;if(!e||!t)return;const i=H(e);i?.layer?.uid===t&&(e.focus(),this._focusSortUid=null)}_selectionKeydown(e){const t=["ArrowDown","ArrowUp"],s=i(e);if(!t.includes(s))return void this._toggleSelection(e);e.stopPropagation();const n=e.currentTarget,r=H(n),o=n.dataset.itemType,{_sortableBaseLayers:l,_sortableReferenceLayers:a,selectedItems:d}=this,c="base"===o?l:"reference"===o?a:null;if(!c||!r)return;const h=u(r,d),m=c.toArray(),g=e.target,p=m.indexOf(g.dataset[E]),{baseItems:_,referenceItems:b}=this.viewModel;if(-1!==p){if("ArrowDown"===s){const e=p+1,t=e>=m.length;if(t&&"reference"===o&&h){const e=_.length;return this.viewModel.transferListItem({listItem:r,from:"reference",to:"base",newIndex:e}),this._focusSortUid=r.layer?.uid,void this.scheduleRender()}if(t&&"reference"===o){const e=_.at(0);return this._focusSortUid=e?.layer?.uid,void this.scheduleRender()}if(t)return;return h&&(L(m,p,e),c.sort(m),this._sortLayersToItems({type:o,itemIds:c.toArray()})),this._focusSortUid=r.layer?.uid,void this.scheduleRender()}if("ArrowUp"===s){const e=p-1,t=e<0;if(t&&"base"===o&&h){if(1===_.length)return;const e=0;return this.viewModel.transferListItem({listItem:r,from:"base",to:"reference",newIndex:e}),this._focusSortUid=r.layer?.uid,void this.scheduleRender()}if(t&&"base"===o){const e=b.at(-1);return this._focusSortUid=e?.layer?.uid,void this.scheduleRender()}if(t)return;h&&(L(m,p,e),c.sort(m),this._sortLayersToItems({type:o,itemIds:c.toArray()})),this._focusSortUid=r.layer?.uid,this.scheduleRender()}}}_watchActionSectionChanges(e,t){this.addHandles(e.on("change",(()=>this.scheduleRender())),t),e.forEach((e=>this._renderOnActionChanges(e,t)))}_renderOnActionChanges(e,t){"toggle"!==e.type?"slider"!==e.type?this.addHandles([s((()=>[e.className,e.image,e.id,e.title,e.visible]),(()=>this.scheduleRender()),r)],t):this.addHandles([s((()=>[e.className,e.id,e.title,e.visible,e.value,e.displayValueEnabled,e.max,e.min,e.step]),(()=>this.scheduleRender()),r)],t):this.addHandles([s((()=>[e.className,e.image,e.id,e.title,e.visible,e.value]),(()=>this.scheduleRender()),r)],t)}_renderOnItemChanges(e,t){this.addHandles([s((()=>[e.actionsOpen,e.visible,e.open,e.updating,e.connectionStatus,e.publishing,e.title,e.visibleAtCurrentScale,e.error,e.visibilityMode,e.panel,e.panel?.title,e.panel?.content,e.panel?.className]),(()=>this.scheduleRender()),r),s((()=>[e.hidden,e.error]),(()=>this._setVisibleItems())),e.actionsSections.on("change",(()=>this.scheduleRender())),e.children.on("change",(()=>this.scheduleRender()))],t),e.children.forEach((e=>this._renderOnItemChanges(e,t))),e.actionsSections.forEach((e=>this._watchActionSectionChanges(e,t)))}_itemsChanged(e,t){this.removeHandles(t),this._tooltipReferenceMap.clear(),this._setVisibleItems(),e.forEach((e=>this._renderOnItemChanges(e,t))),this.scheduleRender()}_countActions(e){return e.reduce(((e,t)=>e+t.length),0)}_getIconImageStyles(e){const t="esri.widgets.LayerList.ListItemPanel"===e.declaredClass||"esri.support.Action.ActionButton"===e.declaredClass||"esri.support.Action.ActionToggle"===e.declaredClass?e.image:null;return{"background-image":t?`url("${t}")`:""}}_toggleActionsOpen(e){e.stopPropagation();const t=H(e.currentTarget);if(!t)return;const{actionsOpen:i}=t,s=!i,{baseItems:n,referenceItems:r}=this;s&&(n.forEach((e=>x(e))),r.forEach((e=>x(e)))),t.actionsOpen=s}_triggerPanel(e){e.stopPropagation();const t=V(e.currentTarget);t&&!t.disabled&&(t.open=!t.open)}_triggerAction(e){e.stopPropagation();const t=e.currentTarget,i=U(t),s=H(t);s&&i&&("toggle"===i.type&&(i.value=!i.value),this.triggerAction(i,s))}_toggleVisibility(e){e.stopPropagation();const t=e.currentTarget,i=t.getAttribute("data-parent-visibility"),s=H(t);s&&(i===O.exclusive&&s.visible||(s.visible=!s.visible))}_toggleChildrenClick(e){e.stopPropagation();const t=H(e.currentTarget);t&&(t.open=!t.open)}_toggleSelection(e){e.stopPropagation();const{multipleSelectionEnabled:t,selectedItems:i}=this,s=t&&(e.metaKey||e.ctrlKey),n=H(e.currentTarget);if(!n)return;const r=u(n,i),{length:o}=i;if(!s)return o&&!(r&&1===o)?(i.removeAll(),void i.add(n)):void(r?i.remove(r):i.add(n));r?i.remove(r):i.add(n)}get test(){return{visibleItems:this.visibleItems}}};function U(e){return e["data-action"]}function V(e){return e["data-panel"]}function H(e){return e["data-item"]}e([o()],N.prototype,"visibleItems",void 0),e([o()],N.prototype,"basemapTitle",null),e([o()],N.prototype,"baseListItemCreatedFunction",null),e([o()],N.prototype,"editingEnabled",void 0),e([o()],N.prototype,"headingLevel",void 0),e([o()],N.prototype,"iconClass",void 0),e([o()],N.prototype,"label",null),e([o(),f("esri/widgets/BasemapLayerList/t9n/BasemapLayerList")],N.prototype,"messages",void 0),e([o(),f("esri/t9n/common")],N.prototype,"messagesCommon",void 0),e([o()],N.prototype,"multipleSelectionEnabled",void 0),e([o()],N.prototype,"referenceListItemCreatedFunction",null),e([o({readOnly:!0})],N.prototype,"baseItems",null),e([o({readOnly:!0})],N.prototype,"referenceItems",null),e([o()],N.prototype,"selectedItems",void 0),e([o()],N.prototype,"style",void 0),e([o()],N.prototype,"view",null),e([I("trigger-action"),o({type:c})],N.prototype,"viewModel",void 0),e([o()],N.prototype,"visibleElements",void 0),e([l("visibleElements")],N.prototype,"castVisibleElements",null),e([y()],N.prototype,"_toggleActionsOpen",null),e([y()],N.prototype,"_triggerPanel",null),e([y()],N.prototype,"_triggerAction",null),e([y()],N.prototype,"_toggleVisibility",null),e([y()],N.prototype,"_toggleChildrenClick",null),e([y()],N.prototype,"_toggleSelection",null),N=e([a("esri.widgets.BasemapLayerList")],N);const P=N;export{P as default};
|
|
5
|
+
import{_ as e}from"../chunks/tslib.es6.js";import t from"../core/Collection.js";import{eventKey as i}from"../core/events.js";import{watch as s,on as n,initial as r}from"../core/reactiveUtils.js";import{property as o}from"../core/accessorSupport/decorators/property.js";import{cast as l}from"../core/accessorSupport/decorators/cast.js";import"../core/arrayUtils.js";import"../core/has.js";import{subclass as a}from"../core/accessorSupport/decorators/subclass.js";import d from"./Widget.js";import c from"./BasemapLayerList/BasemapLayerListViewModel.js";import h from"./LayerList/ListItem.js";import{findSelectedItem as u}from"./LayerList/support/layerListUtils.js";import{loadCalciteComponents as m}from"./support/componentsUtils.js";import{globalCss as g}from"./support/globalCss.js";import{Heading as p,incrementHeadingLevel as _}from"./support/Heading.js";import{legacyIcon as b}from"./support/legacyIcon.js";import{accessibleHandler as y}from"./support/decorators/accessibleHandler.js";import{messageBundle as f}from"./support/decorators/messageBundle.js";import{vmEvent as I}from"./support/decorators/vmEvent.js";import{tsx as v}from"./support/jsxFactory.js";import"./support/widgetUtils.js";import C from"sortablejs";const T=t.ofType(h);function L(e,t,i){e.splice(i,0,e.splice(t,1)[0])}const A=".*\\S+.*",S="root-layers",$="data-layer-uid",E="layerUid",w="esri-basemap-layer-list",k=`${w}__item`,M=`${w}__list`,B={base:w,widgetIcon:b.layers,newUI:`${w}--new-ui`,titleContainer:`${w}__title-container`,mainHeading:`${w}__main-heading`,editingCard:`${w}__editing-card`,editingInput:`${w}__editing-input`,editingActions:`${w}__editing-actions`,editButton:`${w}__edit-button`,editButtonIcon:`${w}__edit-button-icon`,submitButton:`${w}__submit-button`,cancelButton:`${w}__cancel-button`,noItems:`${w}__no-items`,horizontalRule:`${w}__hr`,list:M,listHeading:`${M}-heading`,listRoot:`${M}--root`,listExclusive:`${M}--exclusive`,listEmpty:`${w}__list--empty`,listEmptyState:`${w}__list-empty-state`,listInherited:`${M}--inherited`,listIndependent:`${M}--independent`,item:k,itemOnlyChild:`${k}--only-child`,itemContent:`${k}-content`,itemMessage:`${k}--has-message`,itemInvisible:`${k}--invisible`,itemInvisibleAtScale:`${k}--invisible-at-scale`,itemChildren:`${k}--has-children`,itemSelectable:`${k}--selectable`,itemContainer:`${k}-container`,actionsMenu:`${k}-actions-menu`,actionsMenuItem:`${k}-actions-menu-item`,actionsMenuItemActive:`${k}-actions-menu-item--active`,actions:`${k}-actions`,actionsList:`${k}-actions-list`,action:`${k}-action`,actionIcon:`${k}-action-icon`,actionImage:`${k}-action-image`,actionTitle:`${k}-action-title`,actionToggle:`${w}__action-toggle`,actionToggleOn:`${w}__action-toggle--on`,label:`${k}-label`,message:`${k}-message`,title:`${k}-title`,statusIndicator:`${w}__status-indicator`,publishing:`${w}__publishing`,updating:`${w}__updating`,connectionStatus:`${w}__connection-status`,connectionStatusConnected:`${w}__connection-status--connected`,toggleVisible:`${k}-toggle`,toggleVisibleIcon:`${k}-toggle-icon`,toggleIcon:`${k}-toggle-icon`,radioIcon:`${k}-radio-icon`,childToggle:`${w}__child-toggle`,childToggleOpen:`${w}__child-toggle--open`,childOpened:`${w}__child-toggle-icon--opened`,childClosed:`${w}__child-toggle-icon--closed`,childClosed_RTL:`${w}__child-toggle-icon--closed-rtl`,sortableChosen:`${w}--chosen`},R={actions:"actions",actionSection:"action-section",baseItems:"base-items",referenceItems:"reference-items"},O={exclusive:"exclusive",inherited:"inherited",independent:"independent"};function x(e){const{actionsOpen:t,children:i}=e;t&&(e.actionsOpen=!1),i.forEach((e=>x(e)))}const j={baseLayers:!0,referenceLayers:!0,statusIndicators:!0,errors:!1};let N=class extends d{constructor(e,t){super(e,t),this._tooltipReferenceMap=new Map,this._editingTitle=!1,this._editTitleInput=null,this._editTitleButton=null,this._focusOnElement=null,this._sortableBaseLayers=null,this._sortableReferenceLayers=null,this._sortableBaseLayersNode=null,this._sortableReferenceLayersNode=null,this._focusSortUid=null,this.visibleItems=null,this.editingEnabled=!1,this.headingLevel=2,this.iconClass=B.widgetIcon,this.messages=null,this.messagesCommon=null,this.multipleSelectionEnabled=!1,this.selectedItems=new T,this.style="classic",this.viewModel=new c,this.visibleElements={...j}}initialize(){const{baseItems:e,referenceItems:t}=this;this._setVisibleItems(),this.addHandles([s((()=>this.visibleElements),(()=>{this._itemsChanged(e,R.baseItems),this._itemsChanged(t,R.referenceItems)})),n((()=>this.baseItems),"change",(()=>{this._itemsChanged(e,R.baseItems)})),n((()=>this.referenceItems),"change",(()=>this._itemsChanged(t,R.referenceItems))),s((()=>this.editingEnabled),(()=>this._toggleSorting()),r)])}loadDependencies(){return m({icon:()=>import("@esri/calcite-components/dist/components/calcite-icon.js"),tooltip:()=>import("@esri/calcite-components/dist/components/calcite-tooltip.js")})}destroy(){this._destroyBaseSortable(),this._destroyReferenceSortable(),this._tooltipReferenceMap.clear()}get basemapTitle(){return this.viewModel.basemapTitle}set basemapTitle(e){this.viewModel.basemapTitle=e}get baseListItemCreatedFunction(){return this.viewModel.baseListItemCreatedFunction}set baseListItemCreatedFunction(e){this.viewModel.baseListItemCreatedFunction=e}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get referenceListItemCreatedFunction(){return this.viewModel.referenceListItemCreatedFunction}set referenceListItemCreatedFunction(e){this.viewModel.referenceListItemCreatedFunction=e}get baseItems(){return this.viewModel.baseItems}get referenceItems(){return this.viewModel.referenceItems}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}castVisibleElements(e){return{...j,...e}}triggerAction(e,t){return this.viewModel.triggerAction(e,t)}render(){const{state:e}=this.viewModel,t={[B.newUI]:"modern"===this.style,[g.hidden]:"loading"===e,[g.disabled]:"disabled"===e},i=this._renderItemTooltips(),s=this._renderReferenceSection(),n=this._renderBaseSection(),r=s&&n?v("hr",{class:B.horizontalRule}):null,o=[this._renderTitleContainer(),s,r,n];return v("div",{class:this.classes(B.base,g.widget,g.panel,t)},[i,o])}_renderItemTooltip(e){const{_tooltipReferenceMap:t,messages:i}=this;return e?v("calcite-tooltip",{referenceElement:t.get(e.uid)},i.layerIncompatibleTooltip):null}_renderItemTooltipNodes(e){const{incompatible:t,children:i}=e;return[t?this._renderItemTooltip(e):null,...!t&&i?i.toArray().map((e=>this._renderItemTooltipNodes(e))):[]]}_renderItemTooltips(){return this.visibleItems?.toArray().map((e=>this._renderItemTooltipNodes(e)))??[]}_renderEditingInput(){const{messages:e}=this,{basemapTitle:t}=this.viewModel;return v("label",{class:B.editingInput},e.basemapTitle,v("input",{bind:this,class:g.input,title:e.basemapTitle,"aria-label":e.basemapTitle,placeholder:e.basemapTitle,type:"text",role:"textbox",required:!0,pattern:A,value:t??void 0,afterCreate:this._storeEditTitleInput,afterUpdate:this._focusEditElement}))}_renderCancelButton(){const{messagesCommon:e}=this;return v("button",{title:e.cancel,"aria-label":e.cancel,type:"button",bind:this,class:this.classes(g.button,g.buttonTertiary),onclick:this._toggleEditingTitle},e.cancel)}_renderSubmitButton(){const{messagesCommon:e}=this;return v("button",{title:e.form.submit,"aria-label":e.form.submit,type:"submit",bind:this,class:g.button},e.form.ok)}_renderEditingForm(){return v("div",{class:B.editingCard},v("form",{bind:this,onsubmit:this._formSubmit},this._renderEditingInput(),v("div",{class:B.editingActions},this._renderCancelButton(),this._renderSubmitButton())))}_renderBasemapTitle(){const{basemapTitle:e}=this.viewModel;return v(p,{level:this.headingLevel,class:this.classes(g.heading,B.mainHeading)},e)}_renderEditTitleButton(){const{_editingTitle:e,editingEnabled:t,messagesCommon:i}=this;return t&&!e?v("button",{bind:this,class:B.editButton,title:i.edit,"aria-label":i.edit,onclick:this._toggleEditingTitle,afterCreate:this._storeEditTitleButton,afterUpdate:this._focusEditElement,"data-node-ref":"_editButtonNode",type:"button"},v("span",{"aria-hidden":"true",class:this.classes(b.edit,B.editButtonIcon)})):null}_renderTitleContainer(){return v("div",{class:B.titleContainer},this._editingTitle?this._renderEditingForm():this._renderBasemapTitle(),this._renderEditTitleButton())}_renderNoLayersInfo(e,t){return v("div",{key:t,class:B.noItems},e)}_renderList(e,t){const{messages:i}=this,s="reference"===t?this._destroyReferenceSortable:this._destroyBaseSortable;return v("ul",{key:t,"aria-label":i.widgetLabel,role:this.editingEnabled&&e.length?"listbox":void 0,afterCreate:this._sortNodeCreated,afterRemoved:s,"data-node-ref":t,bind:this,class:this.classes(B.list,B.listRoot,B.listIndependent)},e.map((i=>this._renderItem({item:i,parent:null,itemType:t,isOnlyChild:1===e.length}))))}_renderBaseHeader(){return v(p,{key:"base-heading",level:_(this.headingLevel),class:this.classes(g.heading,B.listHeading)},this.messages.baseHeading)}_renderBaseSection(){const{baseItems:e,messages:t,visibleElements:i}=this;if(!i.baseLayers)return null;const s=this._getItems(e),n="base";return[this._renderBaseHeader(),[0===s.length?this._renderNoLayersInfo(t.noBaseLayers,n):null,this._renderList(s,n)]]}_renderReferenceHeader(){return v(p,{key:"reference-heading",level:_(this.headingLevel),class:this.classes(g.heading,B.listHeading)},this.messages.referenceHeading)}_renderReferenceSection(){const{referenceItems:e,messages:t,visibleElements:i}=this;if(!i.referenceLayers)return null;const s=this._getItems(e),n="reference";return[this._renderReferenceHeader(),[0===s.length?this._renderNoLayersInfo(t.noReferenceLayers,n):null,this._renderList(s,n)]]}_renderChildrenToggle(e,t){const{messagesCommon:i}=this,{children:s}=e,n=!!e.error,r=!!s.length&&!n,o={[B.childToggleOpen]:e.open},l=e.open?i.collapse:i.expand;return r?v("span",{onclick:this._toggleChildrenClick,onkeydown:this._toggleChildrenClick,"data-item":e,key:"toggle-children",class:this.classes(B.childToggle,o),tabIndex:0,role:"button","aria-controls":t,"aria-label":l,title:l},v("span",{"aria-hidden":"true",class:this.classes(B.childClosed,b.rightTriangleArrow)}),v("span",{"aria-hidden":"true",class:this.classes(B.childOpened,b.downArrow)}),v("span",{"aria-hidden":"true",class:this.classes(B.childClosed_RTL,b.leftTriangleArrow)})):null}_renderItemMessage(e){return e.error?v("div",{key:"esri-basemap-layer-list__error",class:B.message,role:"alert"},v("span",{"aria-hidden":"true",class:b.noticeTriangle}),this.messages.layerError):e.incompatible?v("div",{key:"esri-basemap-layer-list__incompatible",class:B.message,role:"alert"},v("span",{bind:this,tabIndex:0,"aria-hidden":"true",class:b.noticeTriangle,afterCreate:t=>this._setTooltipReference(t,e)}),this.messages.layerIncompatible):null}_renderActionsMenuIcon(e,t){const{messagesCommon:i}=this,s={[B.actionsMenuItemActive]:e.actionsOpen};return v("div",{key:"actions-menu-toggle","data-item":e,bind:this,onclick:this._toggleActionsOpen,onkeydown:this._toggleActionsOpen,class:this.classes(B.actionsMenuItem,s),tabIndex:0,role:"button","aria-controls":t,"aria-label":i.options,title:i.options},v("span",{"aria-hidden":"true",class:b.handleHorizontal}))}_renderActionsMenu(e,t,i,s){const{panel:n}=e,r=n&&n.visible?this._renderPanelButton(n):null,o=1===i&&this._getSingleActionButton(t),l=o?this._renderAction({item:e,action:o,singleAction:!0}):null,a=!o&&i?this._renderActionsMenuIcon(e,s):null;return a||r||o?v("div",{key:"actions-menu",class:B.actionsMenu},r,l,a):null}_renderChildList(e,t){const{editingEnabled:i}=this,{visibilityMode:s,children:n}=e,r=this._hasChildren(e),o=!r&&i&&"group"===e.layer?.type,{exclusive:l,inherited:a}=O,d={[B.listEmpty]:!r,[B.listExclusive]:s===l,[B.listInherited]:s===a,[B.listIndependent]:s!==a&&s!==l};return r||o?r?v("ul",{bind:this,key:"list-items",id:t,"data-group":e.uid,"data-item":e,afterCreate:this._sortNodeCreated,afterUpdate:this._sortNodeCreated,class:this.classes(B.list,d),"aria-expanded":e.open?"true":"false",role:i?"listbox":s===l?"radiogroup":"group",hidden:!e.open||null},n?.map((t=>this._renderItem({item:t,parent:e}))).toArray()):v("div",{bind:this,key:"list-items",id:t,class:B.listEmptyState},this.messages.noItemsToDisplay):null}_renderItemContent(e,t,i){const{id:s}=this,n=`${s}_${e.uid}`,r=`${n}_actions`,o=`${n}__list`,{panel:l}=e,a=this._filterActions(e.actionsSections),d=this._countActions(a);return[v("div",{key:"list-item-container",class:B.itemContainer},this._renderChildrenToggle(e,o),this._renderLabel(e,t,i),this._renderActionsMenu(e,a,d,r)),this._renderItemMessage(e),d?this._renderActionsSections(e,a,r):null,l&&l.open&&!l.disabled?l.render():null,this._renderChildList(e,o)]}_renderItem({item:e,parent:t,itemType:i,isOnlyChild:s}){const{style:n,id:r,editingEnabled:o,selectedItems:l}=this,a=`${`${r}_${e.uid}`}__title`,d=this._hasMessage(e),c=this._hasChildren(e),h={[B.itemChildren]:c,[B.itemMessage]:!!d,[B.itemInvisible]:"modern"===n&&!e.visible,[B.itemInvisibleAtScale]:!e.visibleAtCurrentScale,[B.itemSelectable]:o};if(o){const n={[$]:e.layer?.uid};return v("li",{key:`item-with-selection-${e.uid}`,bind:this,afterCreate:this._focusListItem,afterUpdate:this._focusListItem,class:this.classes(B.item,h,{[B.itemOnlyChild]:!!s}),"aria-labelledby":a,onclick:this._toggleSelection,onkeydown:this._selectionKeydown,"data-item-type":i,"data-item":e,tabIndex:0,"aria-selected":u(e,l)?"true":"false",role:"option",...n},this._renderItemContent(e,t,a))}return v("li",{key:`item-no-selection-${e.uid}`,bind:this,afterCreate:this._focusListItem,afterUpdate:this._focusListItem,class:this.classes(B.item,h),"aria-labelledby":a},this._renderItemContent(e,t,a))}_renderConnectionIcon(e){const{connectionStatus:t}=e;return null!=t?v("calcite-icon",{icon:"connected"===t?"check-circle":"offline",scale:"s"}):null}_renderItemStatus(e,t){const{visibleElements:i}=this;if(!i.statusIndicators)return null;const{connectionStatus:s,publishing:n,updating:r}=e,o=r&&!t,l=!!s;return v("span",{class:this.classes({[B.statusIndicator]:!0,[B.publishing]:n,[B.updating]:o,[B.connectionStatus]:l,[B.connectionStatusConnected]:l&&"connected"===s}),key:"layer-item-status"},this._renderConnectionIcon(e))}_renderItemTitle(e,t){const{messages:i}=this,s=e.title||i.untitledLayer,n=e.visibleAtCurrentScale?s:`${s} (${i.layerInvisibleAtScale})`;return v("span",{key:"layer-title-container",id:t,title:n,"aria-label":n,class:B.title},s)}_renderItemToggleIcon({visible:e},t){const{style:i}=this,{exclusive:s}=O,n=t?.visibilityMode,r="modern"===i,o=n===s,l={[B.toggleVisibleIcon]:r,[B.toggleIcon]:r&&!o,[B.radioIcon]:r&&o,[b.radioChecked]:o&&e,[b.radioUnchecked]:o&&!e,[b.visible]:!o&&e,[b.nonVisible]:!o&&!e};return v("span",{key:"item-toggle-icon",class:this.classes(l),"aria-hidden":"true"})}_renderItemToggle(e,t,i){const{editingEnabled:s,messages:n}=this,{exclusive:r}=O,o=t&&t.visibilityMode,l=o===r?"radio":"switch";return v("span",s?{key:"item-toggle-selection-enabled",class:B.toggleVisible,bind:this,onclick:this._toggleVisibility,onkeydown:this._toggleVisibility,"data-item":e,"data-parent-visibility":o,tabIndex:0,"aria-checked":e.visible?"true":"false",title:n.layerVisibility,role:l,"aria-labelledby":i}:{key:"item-toggle",class:B.toggleVisible},this._renderItemToggleIcon(e,t))}_renderLabel(e,t,i){const{editingEnabled:s,style:n,messages:r}=this,{inherited:o,exclusive:l}=O,a=t?.visibilityMode,d=a===l?"radio":"switch",c=this._renderItemTitle(e,i),h=this._renderItemStatus(e,t),u=this._renderItemToggle(e,t,i),m="modern"===n?[c,h,u]:[u,c,h],g=v("div",s?{key:`item-label-no-selection-${e.uid}`,class:B.label}:{key:`item-label-with-selection-${e.uid}`,class:B.label,bind:this,onclick:this._toggleVisibility,onkeydown:this._toggleVisibility,"data-item":e,"data-parent-visibility":a,tabIndex:0,title:r.layerVisibility,"aria-checked":e.visible?"true":"false",role:d,"aria-labelledby":i},m);return a===o||e.error?v("div",{key:`item-label-container-${e.uid}`,class:B.label},this._renderItemTitle(e,i),this._renderItemStatus(e,t)):g}_renderPanelButton(e){const{className:t,open:i,title:s,image:n,disabled:r}=e,o=n||t?t:b.defaultAction,l=this._getIconImageStyles(e),a={[B.actionsMenuItemActive]:i&&!r},d={[B.actionImage]:!!l["background-image"],[g.disabledElement]:e.disabled};return o&&(d[o]=!!o),v("div",{"aria-disabled":e.disabled.toString(),key:`panel-${e.uid}`,bind:this,"data-panel":e,onclick:this._triggerPanel,onkeydown:this._triggerPanel,class:this.classes(B.actionsMenuItem,a),role:"button",tabIndex:e.disabled?void 0:0,title:s,"aria-label":s},v("span",{class:this.classes(d),styles:l}))}_renderActionsSections(e,t,i){const s=t.toArray().map(((t,i)=>v("ul",{key:`${e}-action-section-${i}`,class:B.actionsList},this._renderActionSection(e,t))));return v("div",{role:"group","aria-expanded":e.actionsOpen?"true":"false",key:"actions-section",id:i,class:B.actions,hidden:!e.actionsOpen||null},s)}_renderActionSection(e,t){return(t&&t.toArray()).map((t=>this._renderAction({item:e,action:t})))}_renderActionIcon(e){const{active:t,className:i}=e,s=this._getIconImageStyles(e),n="button"!==e.type||e.image||i?i:b.defaultAction,r={[B.actionImage]:!t&&!!s["background-image"],[b.loadingIndicator]:t,[g.rotating]:t};return n&&!t&&(r[n]=!0),v("span",{key:"action-icon","aria-hidden":"true",class:this.classes(B.actionIcon,r),styles:s})}_renderActionTitle(e,t){return t?null:v("span",{key:"action-title",class:B.actionTitle},e)}_renderAction(e){const{item:t,action:i,singleAction:s}=e,{active:n,disabled:r,title:o}=i,l={[B.actionsMenuItem]:s&&"button"===i.type,[B.action]:n||!s&&"toggle"!==i.type,[B.actionToggle]:!n&&"toggle"===i.type,[B.actionToggleOn]:!n&&"toggle"===i.type&&i.value,[g.disabledElement]:r},a=[this._renderActionIcon(i),this._renderActionTitle(o,s)];return s?v("div",{bind:this,"data-item":t,"data-action":i,role:"button",key:`single-action-${i.uid}`,onclick:this._triggerAction,onkeydown:this._triggerAction,classes:l,tabIndex:0,title:o??void 0,"aria-label":o},a):v("li",{bind:this,"data-item":t,"data-action":i,key:`action-${i.uid}`,onclick:this._triggerAction,onkeydown:this._triggerAction,classes:l,tabIndex:0,role:"button",title:o??void 0,"aria-label":o},a)}_setVisibleItems(){const{referenceItems:e,baseItems:t,visibleElements:i}=this,s=e.concat(t);this.visibleItems=s?.filter((e=>!e.hidden&&(i.errors||!e.error)))}_setTooltipReference(e,t){this._tooltipReferenceMap.set(t.uid,e),this.scheduleRender()}_hasMessage(e){return!!e.error||e.incompatible}_hasChildren(e){return!!e.children.length&&!this._hasMessage(e)}_filterActions(e){return e.map((e=>e.filter((e=>e.visible))))}_destroyReferenceSortable(){const{_sortableReferenceLayers:e}=this;e?.el&&e.destroy(),this._sortableReferenceLayersNode=null}_destroyBaseSortable(){const{_sortableBaseLayers:e}=this;e?.el&&e.destroy(),this._sortableBaseLayersNode=null}_toggleEditingTitle(){const{_editingTitle:e}=this,t=!e;this._editingTitle=t,this._focusOnElement=t?"edit-input":"edit-button",this.scheduleRender()}_storeEditTitleInput(e){this._editTitleInput=e,this._focusEditElement()}_focusEditElement(){this._editTitleInput&&"edit-input"===this._focusOnElement&&(this._focusOnElement=null,this._editTitleInput.focus()),this._editTitleButton&&"edit-button"===this._focusOnElement&&(this._focusOnElement=null,this._editTitleButton.focus())}_storeEditTitleButton(e){this._editTitleButton=e,this._focusEditElement()}_formSubmit(e){e.preventDefault();const t=this._editTitleInput?.value;t?.trim()&&(this.basemapTitle=t),this._toggleEditingTitle()}_itemMovedList(e){const t=H(e.item);if(!t)return;const i=e.to.dataset.nodeRef,s=e.from.dataset.nodeRef,n=e.newIndex;this.viewModel.transferListItem({listItem:t,from:s,to:i,newIndex:n})}_toggleSortingBaseLayers(){const{_sortableBaseLayers:e,_sortableBaseLayersNode:t,editingEnabled:i}=this;if(!t)return;const s=!i;if(e)e.option("disabled",s);else{const e=C.create(t,{dataIdAttr:$,group:S,filter:`.${B.itemOnlyChild}`,fallbackTolerance:4,disabled:s,onSort:()=>this._sortLayersToItems({type:"base",itemIds:e.toArray()}),onAdd:e=>this._itemMovedList(e),chosenClass:B.sortableChosen});this._sortableBaseLayers=e}}_toggleSortingReferenceLayers(){const{_sortableReferenceLayers:e,_sortableReferenceLayersNode:t,editingEnabled:i}=this;if(!t)return;const s=!i;if(e)e.option("disabled",s);else{const e=C.create(t,{dataIdAttr:$,group:S,disabled:s,fallbackTolerance:4,onSort:()=>this._sortLayersToItems({type:"reference",itemIds:e.toArray()}),onAdd:e=>this._itemMovedList(e),chosenClass:B.sortableChosen});this._sortableReferenceLayers=e}}_toggleSorting(){this._toggleSortingBaseLayers(),this._toggleSortingReferenceLayers()}_sortNodeCreated(e){const t=e.getAttribute("data-node-ref");"base"===t&&(this._sortableBaseLayersNode=e),"reference"===t&&(this._sortableReferenceLayersNode=e),this._toggleSorting()}_getItems(e){return e.toArray().filter((e=>!e.hidden&&(this.visibleElements.errors||!e.error)))}_getSingleActionButton(e){return e.reduce((e=>e)).filter((e=>e&&"button"===e.type)).at(0)}_sortLayersToItems({type:e,itemIds:t}){const i="base"===e?this.view?.map?.basemap?.baseLayers:"reference"===e?this.view?.map?.basemap?.referenceLayers:null;i&&i.sort(((e,i)=>{const s=t.indexOf(e.uid),n=t.indexOf(i.uid);return s>n?-1:s<n?1:0}))}_focusListItem(e){const{_focusSortUid:t}=this;if(!e||!t)return;const i=H(e);i?.layer?.uid===t&&(e.focus(),this._focusSortUid=null)}_selectionKeydown(e){const t=["ArrowDown","ArrowUp"],s=i(e);if(!t.includes(s))return void this._toggleSelection(e);e.stopPropagation();const n=e.currentTarget,r=H(n),o=n.dataset.itemType,{_sortableBaseLayers:l,_sortableReferenceLayers:a,selectedItems:d}=this,c="base"===o?l:"reference"===o?a:null;if(!c||!r)return;const h=u(r,d),m=c.toArray(),g=e.target,p=m.indexOf(g.dataset[E]),{baseItems:_,referenceItems:b}=this.viewModel;if(-1!==p){if("ArrowDown"===s){const e=p+1,t=e>=m.length;if(t&&"reference"===o&&h){const e=_.length;return this.viewModel.transferListItem({listItem:r,from:"reference",to:"base",newIndex:e}),this._focusSortUid=r.layer?.uid,void this.scheduleRender()}if(t&&"reference"===o){const e=_.at(0);return this._focusSortUid=e?.layer?.uid,void this.scheduleRender()}if(t)return;return h&&(L(m,p,e),c.sort(m),this._sortLayersToItems({type:o,itemIds:c.toArray()})),this._focusSortUid=r.layer?.uid,void this.scheduleRender()}if("ArrowUp"===s){const e=p-1,t=e<0;if(t&&"base"===o&&h){if(1===_.length)return;const e=0;return this.viewModel.transferListItem({listItem:r,from:"base",to:"reference",newIndex:e}),this._focusSortUid=r.layer?.uid,void this.scheduleRender()}if(t&&"base"===o){const e=b.at(-1);return this._focusSortUid=e?.layer?.uid,void this.scheduleRender()}if(t)return;h&&(L(m,p,e),c.sort(m),this._sortLayersToItems({type:o,itemIds:c.toArray()})),this._focusSortUid=r.layer?.uid,this.scheduleRender()}}}_watchActionSectionChanges(e,t){this.addHandles(e.on("change",(()=>this.scheduleRender())),t),e.forEach((e=>this._renderOnActionChanges(e,t)))}_renderOnActionChanges(e,t){"toggle"!==e.type?"slider"!==e.type?this.addHandles([s((()=>[e.className,e.image,e.id,e.title,e.visible]),(()=>this.scheduleRender()),r)],t):this.addHandles([s((()=>[e.className,e.id,e.title,e.visible,e.value,e.displayValueEnabled,e.max,e.min,e.step]),(()=>this.scheduleRender()),r)],t):this.addHandles([s((()=>[e.className,e.image,e.id,e.title,e.visible,e.value]),(()=>this.scheduleRender()),r)],t)}_renderOnItemChanges(e,t){this.addHandles([s((()=>[e.actionsOpen,e.visible,e.open,e.updating,e.connectionStatus,e.publishing,e.title,e.visibleAtCurrentScale,e.error,e.visibilityMode,e.panel,e.panel?.title,e.panel?.content,e.panel?.className]),(()=>this.scheduleRender()),r),s((()=>[e.hidden,e.error]),(()=>this._setVisibleItems())),e.actionsSections.on("change",(()=>this.scheduleRender())),e.children.on("change",(()=>this.scheduleRender()))],t),e.children.forEach((e=>this._renderOnItemChanges(e,t))),e.actionsSections.forEach((e=>this._watchActionSectionChanges(e,t)))}_itemsChanged(e,t){this.removeHandles(t),this._tooltipReferenceMap.clear(),this._setVisibleItems(),e.forEach((e=>this._renderOnItemChanges(e,t))),this.scheduleRender()}_countActions(e){return e.reduce(((e,t)=>e+t.length),0)}_getIconImageStyles(e){const t="esri.widgets.LayerList.ListItemPanel"===e.declaredClass||"esri.support.Action.ActionButton"===e.declaredClass||"esri.support.Action.ActionToggle"===e.declaredClass?e.image:null;return{"background-image":t?`url("${t}")`:""}}_toggleActionsOpen(e){e.stopPropagation();const t=H(e.currentTarget);if(!t)return;const{actionsOpen:i}=t,s=!i,{baseItems:n,referenceItems:r}=this;s&&(n.forEach((e=>x(e))),r.forEach((e=>x(e)))),t.actionsOpen=s}_triggerPanel(e){e.stopPropagation();const t=V(e.currentTarget);t&&!t.disabled&&(t.open=!t.open)}_triggerAction(e){e.stopPropagation();const t=e.currentTarget,i=U(t),s=H(t);s&&i&&("toggle"===i.type&&(i.value=!i.value),this.triggerAction(i,s))}_toggleVisibility(e){e.stopPropagation();const t=e.currentTarget,i=t.getAttribute("data-parent-visibility"),s=H(t);s&&(i===O.exclusive&&s.visible||(s.visible=!s.visible))}_toggleChildrenClick(e){e.stopPropagation();const t=H(e.currentTarget);t&&(t.open=!t.open)}_toggleSelection(e){e.stopPropagation();const{multipleSelectionEnabled:t,selectedItems:i}=this,s=t&&(e.metaKey||e.ctrlKey),n=H(e.currentTarget);if(!n)return;const r=u(n,i),{length:o}=i;if(!s)return o&&!(r&&1===o)?(i.removeAll(),void i.add(n)):void(r?i.remove(r):i.add(n));r?i.remove(r):i.add(n)}get test(){return{visibleItems:this.visibleItems}}};function U(e){return e["data-action"]}function V(e){return e["data-panel"]}function H(e){return e["data-item"]}e([o()],N.prototype,"visibleItems",void 0),e([o()],N.prototype,"basemapTitle",null),e([o()],N.prototype,"baseListItemCreatedFunction",null),e([o()],N.prototype,"editingEnabled",void 0),e([o()],N.prototype,"headingLevel",void 0),e([o()],N.prototype,"iconClass",void 0),e([o()],N.prototype,"label",null),e([o(),f("esri/widgets/BasemapLayerList/t9n/BasemapLayerList")],N.prototype,"messages",void 0),e([o(),f("esri/t9n/common")],N.prototype,"messagesCommon",void 0),e([o()],N.prototype,"multipleSelectionEnabled",void 0),e([o()],N.prototype,"referenceListItemCreatedFunction",null),e([o({readOnly:!0})],N.prototype,"baseItems",null),e([o({readOnly:!0})],N.prototype,"referenceItems",null),e([o()],N.prototype,"selectedItems",void 0),e([o()],N.prototype,"style",void 0),e([o()],N.prototype,"view",null),e([I("trigger-action"),o({type:c})],N.prototype,"viewModel",void 0),e([o()],N.prototype,"visibleElements",void 0),e([l("visibleElements")],N.prototype,"castVisibleElements",null),e([y()],N.prototype,"_toggleActionsOpen",null),e([y()],N.prototype,"_triggerPanel",null),e([y()],N.prototype,"_triggerAction",null),e([y()],N.prototype,"_toggleVisibility",null),e([y()],N.prototype,"_toggleChildrenClick",null),e([y()],N.prototype,"_toggleSelection",null),N=e([a("esri.widgets.BasemapLayerList")],N);const P=N;export{P as default};
|
package/widgets/Bookmarks.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 t}from"../chunks/tslib.es6.js";import{isSome as e}from"../core/arrayUtils.js";import{eventKey as o}from"../core/events.js";import{watch as s,initial as i,on as r}from"../core/reactiveUtils.js";import{property as a}from"../core/accessorSupport/decorators/property.js";import{cast as n}from"../core/accessorSupport/decorators/cast.js";import"../core/has.js";import{subclass as d}from"../core/accessorSupport/decorators/subclass.js";import{formatDate as l,convertDateFormatToIntlOptions as u}from"../intl/date.js";import{SYSTEM as m}from"../time/timeZoneUtils.js";import{SlideThumbnail as k}from"../webdoc/support/SlideThumbnail.js";import h from"./Widget.js";import c from"./Bookmarks/BookmarksUserState.js";import p from"./Bookmarks/BookmarksViewModel.js";import{css as b}from"./Bookmarks/css.js";import _ from"./FeatureTable/Grid/support/ButtonMenu.js";import g from"./FeatureTable/Grid/support/ButtonMenuItem.js";import{loadCalciteComponents as B}from"./support/componentsUtils.js";import{globalCss as f}from"./support/globalCss.js";import{Heading as v}from"./support/Heading.js";import{legacyIcon as E}from"./support/legacyIcon.js";import{isActivationKey as I}from"./support/widgetUtils.js";import{messageBundle as y}from"./support/decorators/messageBundle.js";import{vmEvent as w}from"./support/decorators/vmEvent.js";import{tsx as S}from"./support/jsxFactory.js";import T from"sortablejs";function A(t,e,o){t.splice(o,0,t.splice(e,1)[0])}const x="bookmarks",U="data-bookmark-uid",C={addBookmark:!0,thumbnail:!0,time:!0},M=/^https:\/\/.*/i,N="esri.widgets.Bookmarks";let j=class extends h{constructor(t,e){super(t,e),this._tooltipReferenceMap=new Map,this._addInputNode=null,this._editInputNode=null,this._urlEditInputNode=null,this._addBookmarkButtonNode=null,this._focusAddBookmarkButton=!1,this._focusEditInputBox=!1,this._focusAddInputBox=!1,this._focusUrlEditInputBox=!1,this._sortable=null,this._sortableNode=null,this._focusSortUid=null,this._selectedSortUid=null,this._sortableSavedItems=[],this._editIncludeTimeExtent=void 0,this._userState=null,this.disabled=!1,this.editingEnabled=!1,this.headingLevel=2,this.iconClass=b.widgetIcon,this.icon=null,this.messages=null,this.messagesCommon=null,this.viewModel=new p,this.visibleElements={...C}}initialize(){this.addHandles([s((()=>this.viewModel?.bookmarks),(()=>this._bookmarksInitialized()),i),s((()=>this.editingEnabled),(()=>this._toggleSorting()),i)])}destroy(){this._destroySortable(),this._editMenu.destroy(),this._tooltipReferenceMap.clear()}loadDependencies(){return B({label:()=>import("@esri/calcite-components/dist/components/calcite-label.js"),switch:()=>import("@esri/calcite-components/dist/components/calcite-switch.js"),tooltip:()=>import("@esri/calcite-components/dist/components/calcite-tooltip.js")})}get _editMenuItems(){const{messages:t,_userState:o}=this,s=o?.editedBookmark?.thumbnail?.url;return[new g({label:t?.menu.refreshThumbnail,iconClass:E.refresh,clickFunction:()=>this._refreshThumbnail()}),new g({label:s&&M.test(s)?t?.menu.editImageUrl:t?.menu.useImageUrl,iconClass:E.link,clickFunction:()=>this._startUseImageUrl()}),s?new g({label:t?.menu.removeThumbnail,iconClass:E.erase,clickFunction:()=>this._removeThumbnail()}):null].filter(e)}get _editMenu(){const{_editMenuItems:t,messages:e,disabled:o}=this,s=this._get("_editMenu");s&&s.destroy();const i=new _({disabled:o,iconClass:E.handleHorizontal,label:e?.menu.label});return i.items=t,i}get defaultCreateOptions(){return this.viewModel.defaultCreateOptions}set defaultCreateOptions(t){this.viewModel.defaultCreateOptions=t}get defaultEditOptions(){return this.viewModel.defaultEditOptions}set defaultEditOptions(t){this.viewModel.defaultEditOptions=t}get bookmarks(){return this.viewModel.bookmarks}set bookmarks(t){this.viewModel.bookmarks=t}get goToOverride(){return this.viewModel.goToOverride}set goToOverride(t){this.viewModel.goToOverride=t}get label(){return this.messages?.widgetLabel??""}set label(t){this._overrideIfSome("label",t)}get view(){return this.viewModel.view}set view(t){this.viewModel.view=t}castVisibleElements(t){return{...C,...t}}endAddBookmark(){this._userState=null}goTo(t){return this.viewModel.goTo(t)}render(){const{state:t}=this.viewModel,e="loading"===t?this._renderLoading():this._renderBookmarks();return S("div",{class:this.classes(b.base,f.widget,f.panel,{[f.widgetDisabled]:this.disabled})},e)}startAddBookmark(){this._userState=new c({state:"add"}),this._focusAddInputBox=!0,this.scheduleRender()}_renderBookmarkTooltips(t){return t.toArray().map((t=>this._renderBookmarkTooltip(t)))??[]}_renderBookmarkTooltip(t){const{_tooltipReferenceMap:e,messagesCommon:o}=this,s=this._getBookmarkTitle(t),i=`${o?.dragHandleTitle} ${s}`;return t?S("calcite-tooltip",{key:`tooltip-${t.uid}`,referenceElement:e.get(t.uid)},i):null}_renderLoading(){return S("div",{class:b.loaderContainer,key:"loader",tabIndex:this.disabled?-1:void 0},S("div",{class:b.loader}))}_renderNoBookmarksContainer(){const{messages:t,disabled:e}=this;return S("div",{class:f.empty,key:"no-bookmarks",tabIndex:e?-1:void 0},S("span",{"aria-hidden":"true",class:this.classes(f.noBookmarksIcon,b.widgetIcon)}),S(v,{level:this.headingLevel,class:this.classes(f.heading,b.noBookmarksHeader)},t?.noBookmarksHeading),S("p",{class:b.noBookmarksDescription},t?.noBookmarksDescription))}_renderAddBookmarkLoading(){return S("div",{key:"adding-bookmark",class:b.addingBookmark},S("span",{"aria-hidden":"true",class:this.classes(E.loadingIndicator,f.rotating)}),this.messages?.addingBookmark)}_renderBookmarkItems(t){if(!t)return[];const{_userState:e,editingEnabled:o}=this;return t.map((t=>o&&t&&e&&("edit"===e.state||"edit-thumbnail"===e.state)&&e.bookmark===t?"edit-thumbnail"===e.state?this._renderEditingBookmarkUrl(e.editedBookmark):this._renderEditingBookmark(e.editedBookmark):this._renderBookmark(t))).toArray()}_renderBookmarksContainer(t){const{_userState:e,editingEnabled:o,disabled:s,view:i}=this,r="add"===e?.state,a=i&&o&&!r?this._renderAddBookmarkButton():null,n=o?r&&e.loading?this._renderAddBookmarkLoading():"add"===e?.state?this._renderAddingBookmark():null:null;return[S("ul",{key:"bookmark-list","aria-label":this.messages?.widgetLabel,class:this.classes(b.bookmarkList,{[b.bookmarkListSortable]:this.editingEnabled}),afterCreate:this._sortNodeCreated,afterRemoved:this._destroySortable,"data-node-ref":"_sortableNode",bind:this,tabIndex:s?-1:void 0},this._renderBookmarkItems(t)),a,n]}_renderAddBookmarkButton(){return this.visibleElements.addBookmark?S("div",{key:"add-bookmark-item",class:b.addBookmark},S("button",{class:this.classes(f.button,f.buttonTertiary,b.addBookmarkButton),disabled:this.disabled,onclick:this.startAddBookmark,afterCreate:this._storeAddBookmarkButton,afterUpdate:this._storeAddBookmarkButton,"data-node-ref":"_addBookmarkButtonNode",bind:this,type:"button"},S("span",{"aria-hidden":"true",class:this.classes(b.addBookmarkIcon,E.plus)}),this.messages?.addBookmark)):null}_renderBookmarks(){const{bookmarks:t}=this.viewModel,e=t&&t.filter(Boolean),o=e&&e.length,s=o||this.editingEnabled?this._renderBookmarksContainer(e):null;return[o?null:this._renderNoBookmarksContainer(),s,this._renderBookmarkTooltips(t)]}_renderEditContainer(t){const{messagesCommon:e,disabled:o}=this,s=this._getBookmarkTitle(t);return S("div",{class:b.bookmarkEditButtonContainer,key:"edit-container"},S("button",{disabled:o,title:`${e?.edit} ${s}`,"aria-label":`${e?.edit} ${s}`,"data-bookmark":t,onclick:this._showEditBookmarkForm,bind:this,class:b.bookmarkEditButton,type:"button"},S("span",{"aria-hidden":"true",class:E.edit})))}_renderDragHandle(t){const{messagesCommon:e,disabled:o}=this,s=this._getBookmarkTitle(t),i={[U]:t.uid};return S("div",{role:"button",tabIndex:o?-1:0,key:"drag-handle",bind:this,class:b.bookmarkDragHandle,onkeydown:this._dragHandleKeydown,"data-bookmark":t,afterCreate:this._focusDragHandle,afterUpdate:this._focusDragHandle,onblur:this._dragHandleBlur,"aria-pressed":this._selectedSortUid===t.uid?"true":"false","aria-label":`${e?.dragHandleTitle} ${s}`,...i},S("span",{"aria-hidden":"true",class:this.classes(b.bookmarkDragHandleIcon,E.handleVertical)}))}_renderBookmarkImageIcon(){return S("span",{"aria-hidden":"true",class:this.classes(b.bookmarkIcon,b.widgetIcon)})}_renderBookmarkImage(t){const{visibleElements:e}=this,{thumbnail:o}=t,s=o&&o.url||"";return e.thumbnail&&s?S("img",{src:s,alt:"",class:b.bookmarkImage}):null}_renderBookmarkTimeSwitch(t){const{messages:e,disabled:o}=this,{timeExtent:s}=t,{view:i}=this.viewModel;return i?.timeExtent??s?S("calcite-label",{layout:"inline-space-between"},e?.includeTimeExtent,S("calcite-switch",{scale:"s",disabled:o,checked:!!s,onCalciteSwitchChange:t=>{this._editIncludeTimeExtent=!!t.target.checked}})):null}_renderBookmarkTimeExtent(t){const{visibleElements:e}=this,{timeExtent:o}=t;return o?S("span",{class:b.timeExtent},[null!=o.start&&S("span",{key:"start-date-group",class:b.timeExtentGroup},S("span",{key:"start-date",class:b.timeExtentDate},this._formatDate(o.start)),e.time&&S("span",{key:"start-time",class:b.timeExtentTime},this._formatTime(o.start))),null!=o.end&&(null==o.start||o.start.getTime()!==o.end.getTime())&&S("span",{key:"end-date-group",class:b.timeExtentGroup},S("span",{key:"end-date",class:b.timeExtentDate},this._formatDate(o.end)),e.time&&S("span",{key:"end-time",class:b.timeExtentTime},this._formatTime(o.end)))]):null}_renderBookmarkButton(t){const{disabled:e}=this,{timeExtent:o}=t,{capabilities:s}=this.viewModel,i=this._getBookmarkTitle(t),{thumbnail:r}=t,a=S("div",{class:this.classes(b.bookmarkImageContainer,r&&r.url?b.bookmarkImageContainerHasImage:null)},this._renderBookmarkImage(t)||this._renderBookmarkImageIcon()),n=s.time&&o?S("span",{key:"time-extent",class:b.bookmarkTimeExtent},this._renderBookmarkTimeExtent(t)):null;return S("button",{disabled:e,key:"bookmark-button",class:b.bookmarkButton,bind:this,"data-bookmark":t,onclick:this._goToBookmark,type:"button"},a,S("div",{class:b.bookmarkLabel},S("span",{key:"bookmark-title",class:b.bookmarkName},i),n))}_renderBookmark(t){const{activeBookmark:e}=this.viewModel,o={[b.bookmarkActive]:e===t},s=this.editingEnabled?this._renderEditContainer(t):null,i={[U]:t.uid},r=this.editingEnabled?this._renderDragHandle(t):null;return S("li",{key:t,class:this.classes(b.bookmark,o),...i},r,this._renderBookmarkButton(t),s)}_renderEditingBookmarkName(t){const{messages:e,_userState:o,disabled:s}=this,i="name-required"===o?.validationState;return S("label",{class:this.classes({[b.authoringLabel]:!0,[b.authoringLabelStartPadding]:!!this.visibleElements?.thumbnail})},e?.title,i?S("strong",null,e?.invalidTitle):null,S("input",{required:!0,disabled:s,bind:this,class:this.classes(f.input,i?b.authoringInputInvalid:null),type:"text",value:t.name,afterCreate:this._storeEditInput,afterUpdate:this._focusEditInput,"data-bookmark":t,"data-node-ref":"_editInputNode",placeholder:e?.titlePlaceholder}))}_renderEditingBookmarkUrlActions(){const{messagesCommon:t,disabled:e}=this;return S("div",{class:b.authoringActions},S("input",{type:"button",disabled:e,value:t?.back,class:this.classes(f.button,f.buttonTertiary),onclick:this._closeUrlEditBookmarkForm,bind:this}),S("input",{class:f.button,disabled:e,type:"submit",value:t?.add}))}_renderEditingBookmarkActions(){const{messagesCommon:t,disabled:e}=this,o=this._userState?.bookmark;return S("div",{class:b.authoringActions},S("input",{type:"button",disabled:e,value:t?.delete,class:this.classes(f.button,f.buttonTertiary,b.authoringDeleteButton),"data-bookmark":o,onclick:this._deleteBookmark,bind:this}),S("input",{disabled:e,type:"button",value:t?.cancel,class:this.classes(f.button,f.buttonTertiary),onclick:this._closeEditBookmarkForm,bind:this}),S("input",{class:f.button,disabled:e,type:"submit",value:t?.save}))}_renderEditingBookmarkUrlInput(t){const{messages:e,_userState:o,disabled:s}=this,i=t.thumbnail?.url,r=i&&M.test(i)?i:void 0,a="absolute-url-required"===o?.validationState;return S("label",{class:this.classes({[b.authoringLabel]:!0,[b.authoringLabelStartPadding]:!!this.visibleElements?.thumbnail})},a?S("strong",null,e?.invalidImageUrl):null,S("input",{required:!0,disabled:s,bind:this,class:this.classes(f.input,a?b.authoringInputInvalid:null),type:"text",value:r,afterCreate:this._storeUrlEditInput,afterUpdate:this._focusUrlEditInput,"data-bookmark":t,"data-node-ref":"_urlEditInputNode",title:e?.imageUrlTooltip,placeholder:e?`https://<${e.imageUrlPlaceholder}>`:void 0}))}_renderEditingBookmarkUrl(t){if(!t)return null;const e={[U]:t.uid};return S("li",{key:"edit-bookmark-url-form",class:b.authoringCard,...e},S("form",{class:b.authoringForm,disabled:this.disabled,onsubmit:this._editBookmarkUrlSubmit,bind:this},this._renderEditingBookmarkUrlInput(t),this._renderEditingBookmarkUrlActions()))}_renderEditingBookmark(t){if(!t)return null;const e={[U]:t.uid},{capabilities:o}=this.viewModel,s=o.time?S("div",{key:"edit-bookmark-time-container",class:b.timeExtentContainer},this._renderBookmarkTimeSwitch(t),this._editIncludeTimeExtent&&this._renderBookmarkTimeExtent(t)):null;return S("li",{key:"edit-bookmark-form",class:b.authoringCard,...e},S("form",{class:b.authoringForm,disabled:this.disabled,onsubmit:this._editBookmarkSubmit,bind:this},S("div",{class:b.authoringContainer},this.visibleElements.thumbnail?S("div",{class:b.bookmarkImageContainer},this._renderBookmarkImage(t),this._editMenu.render()):null,this._renderEditingBookmarkName(t)),s,this._renderEditingBookmarkActions()))}_renderAddingBookmarkName(){const{_userState:t,messages:e,disabled:o}=this,s="name-required"===t?.validationState;return S("label",{class:b.authoringLabel},e?.title,s?S("strong",null,e?.invalidTitle):null,S("input",{required:!0,disabled:o,bind:this,class:this.classes(f.input,s?b.authoringInputInvalid:null),type:"text",afterCreate:this._storeAddInput,afterUpdate:this._focusAddInput,"data-node-ref":"_addInputNode",value:"",placeholder:e?.titlePlaceholder}))}_renderAddingBookmarkActions(){const{messagesCommon:t,disabled:e}=this;return S("div",{class:this.classes(b.authoringActions)},S("input",{type:"button",disabled:e,value:t?.cancel,class:this.classes(f.button,f.buttonTertiary,b.authoringCancelButton),onclick:this._endAddBookmark.bind(this),bind:this}),S("input",{class:f.button,disabled:e,type:"submit",value:t?.add}))}_renderAddingBookmark(){return S("div",{key:"add-bookmark-form",class:b.authoringCard},S("form",{class:this.classes(b.authoringForm,b.authoringFormAdding),onsubmit:this._addBookmarkSubmit,bind:this},this._renderAddingBookmarkName(),this._renderAddingBookmarkActions()))}_setTooltipReference(t,e){this._tooltipReferenceMap.set(e.uid,t),this.scheduleRender()}_getBookmarkTitle(t){return(t?.name||this.messagesCommon?.untitled)??""}_formatDate(t){return t?l(t,{...u("short-date"),timeZone:this.view?.timeZone??m}):""}_formatTime(t){return t?l(t,{...u("long-time"),timeZone:this.view?.timeZone??m}):""}_dragHandleBlur(){this._selectedSortUid=null,this.scheduleRender()}_dragHandleKeydown(t){const{_sortableSavedItems:e}=this,s=["ArrowDown","ArrowUp","Escape","Tab"," ","Enter"],i=o(t);if(!s.includes(i))return;const{_sortable:r,_selectedSortUid:a}=this;if(!r)return;const n=r.toArray(),d=t.target.getAttribute(U),l=n.indexOf(d);if(I(i)){const t=a&&a===d;return this._selectedSortUid=t?null:d,this._sortableSavedItems=t?[]:r.toArray(),void this.scheduleRender()}if("Tab"===i)return this._selectedSortUid=null,void this.scheduleRender();if("Escape"===i&&0!==e.length)return t.stopPropagation(),this._selectedSortUid=null,this._updateSortItems(e,r,d),void this.scheduleRender();if(-1===l||!a)return;const u="ArrowUp"===i?l-1:l+1;u>=n.length||u<=-1||(A(n,l,u),this._updateSortItems(n,r,d))}_updateSortItems(t,e,o){e.sort(t),this._sortBookmarks(e),this._focusSortUid=o,this._selectedSortUid=o}_focusDragHandle(t){const e=H(t);if(!e)return;this._setTooltipReference(t,e);const{_focusSortUid:o}=this;if(!t||!o)return;t.getAttribute(U)===o&&(t.focus(),this._focusSortUid=null)}_toggleSorting(){const{_sortable:t,_sortableNode:e,editingEnabled:o,disabled:s}=this;if(e)if(t)t.option("disabled",s||!o);else{const t=T.create(e,{dataIdAttr:U,handle:`.${b.bookmarkDragHandle}`,group:x,disabled:s||!o,onSort:()=>this._sortBookmarks(t)});this._sortable=t}}_sortNodeCreated(t){this._sortableNode=t,this._toggleSorting()}_sortBookmarks(t){const{bookmarks:e}=this.viewModel;if(!e)return;const o=t.toArray();e.sort(((t,e)=>{const s=o.indexOf(t.uid),i=o.indexOf(e.uid);return s>i?1:s<i?-1:0}))}_destroySortable(){const{_sortable:t}=this;t&&t.destroy(),this._sortable=null}_endAddBookmark(){this._focusAddBookmarkButton=!0,this.endAddBookmark()}_bookmarksInitialized(){const t="bookmarks-init";this.removeHandles(t),this.addHandles(r((()=>this.viewModel?.bookmarks),"change",(()=>this._bookmarksChanged())),t)}_bookmarksChanged(){const t="bookmarks-change",{bookmarks:e}=this.viewModel;this.removeHandles(t);const o=e.map((t=>s((()=>[t?.name,t?.thumbnail?.url]),(()=>this.scheduleRender()))));this.addHandles(o.toArray(),t),this.scheduleRender()}_showEditBookmarkForm(t){const e=H(t.currentTarget);e&&(this._editIncludeTimeExtent=!!e.timeExtent,this._focusEditInputBox=!0,this._userState=new c({bookmark:e,state:"edit"}),this.viewModel.goTo(e),this.scheduleRender())}_closeUrlEditBookmarkForm(){this._focusEditInputBox=!0,this._userState&&(this._userState.state="edit")}_closeEditBookmarkForm(){this._userState=null}_addBookmarkSubmit(t){t.preventDefault();const{_addInputNode:e,_userState:o}=this;if(!o)return;const s=e?e.value.trim():null;s?(o.loading=!0,this.viewModel.createBookmark().then((t=>{t.name=s,this.viewModel.bookmarks.add(t),this._endAddBookmark()}))):o.validationState="name-required"}async _editBookmarkAndClose(t,e){const{viewModel:o}=this;await o.editBookmark(t,{...o.defaultEditOptions,...e}),this._closeEditBookmarkForm()}_editBookmarkSubmit(t){t.preventDefault();const{_editInputNode:e,_userState:o,_editIncludeTimeExtent:s}=this;if(!o?.bookmark||!o.editedBookmark)return;const i=e&&e.value.trim();i?(o.bookmark.name=i,o.bookmark.thumbnail=o.editedBookmark.thumbnail,s||(o.bookmark.timeExtent=null),this._editBookmarkAndClose(o.bookmark,{takeScreenshot:!1,captureTimeExtent:s})):o.validationState="name-required"}_storeAddBookmarkButton(t){this._addBookmarkButtonNode=t,this._focusAddBookmark()}_storeEditInput(t){this._editInputNode=t,this._focusEditInput()}_storeAddInput(t){this._addInputNode=t,this._focusAddInput()}_storeUrlEditInput(t){this._urlEditInputNode=t,this._focusUrlEditInput()}_focusUrlEditInput(){this._urlEditInputNode&&this._focusUrlEditInputBox&&(this._focusUrlEditInputBox=!1,this._urlEditInputNode.focus())}_focusAddInput(){this._addInputNode&&this._focusAddInputBox&&(this._focusAddInputBox=!1,this._addInputNode.focus())}_focusAddBookmark(){this._addBookmarkButtonNode&&this._focusAddBookmarkButton&&(this._focusAddBookmarkButton=!1,this._addBookmarkButtonNode.focus())}_focusEditInput(){this._editInputNode&&this._focusEditInputBox&&(this._focusEditInputBox=!1,this._editInputNode.focus())}_deleteBookmark(t){const e=H(t.currentTarget);e&&this.viewModel.bookmarks.remove(e)}_goToBookmark(t){const e=H(t.currentTarget);e&&(this.endAddBookmark(),this._closeEditBookmarkForm(),this.viewModel.goTo(e))}async _refreshThumbnail(){const{_userState:t,_editMenu:e,viewModel:o}=this;t&&(t.validationState=void 0,await o.editBookmark(t.editedBookmark,{takeScreenshot:!0,captureViewpoint:!1,captureRotation:!1,captureScale:!1,captureTimeExtent:!1}),e.open=!1,this._focusEditInputBox=!0,this.scheduleRender())}_removeThumbnail(){const{_userState:t,_editMenu:e}=this;t?.editedBookmark&&(t.editedBookmark.thumbnail=null,t.validationState=void 0,e.open=!1,this._focusEditInputBox=!0,this.scheduleRender())}_startUseImageUrl(){this._userState&&(this._userState.state="edit-thumbnail"),this._editMenu.open=!1,this._focusUrlEditInputBox=!0,this.scheduleRender()}_editBookmarkUrlSubmit(t){t.preventDefault();const{_urlEditInputNode:e,_userState:o}=this;if(!e||!o)return;const s=e.value;M.test(s)?(s&&o.editedBookmark&&(o.editedBookmark.thumbnail=new k({url:s})),this._closeUrlEditBookmarkForm()):o.validationState="absolute-url-required"}};function H(t){return t["data-bookmark"]}t([a()],j.prototype,"_editIncludeTimeExtent",void 0),t([a({type:c})],j.prototype,"_userState",void 0),t([a({readOnly:!0})],j.prototype,"_editMenuItems",null),t([a({readOnly:!0})],j.prototype,"_editMenu",null),t([a()],j.prototype,"defaultCreateOptions",null),t([a()],j.prototype,"defaultEditOptions",null),t([a()],j.prototype,"bookmarks",null),t([a()],j.prototype,"disabled",void 0),t([a()],j.prototype,"editingEnabled",void 0),t([a()],j.prototype,"headingLevel",void 0),t([a()],j.prototype,"goToOverride",null),t([a()],j.prototype,"iconClass",void 0),t([a()],j.prototype,"icon",void 0),t([a()],j.prototype,"label",null),t([a(),y("esri/widgets/Bookmarks/t9n/Bookmarks")],j.prototype,"messages",void 0),t([a(),y("esri/t9n/common")],j.prototype,"messagesCommon",void 0),t([a()],j.prototype,"uiStrings",void 0),t([a()],j.prototype,"view",null),t([a({type:p}),w(["select-bookmark","bookmark-edit","bookmark-select"])],j.prototype,"viewModel",void 0),t([a()],j.prototype,"visibleElements",void 0),t([n("visibleElements")],j.prototype,"castVisibleElements",null),t([a()],j.prototype,"endAddBookmark",null),t([a()],j.prototype,"startAddBookmark",null),j=t([d(N)],j);const D=j;export{D as default};
|
|
5
|
+
import{_ as t}from"../chunks/tslib.es6.js";import{isSome as e}from"../core/arrayUtils.js";import{eventKey as o}from"../core/events.js";import{watch as s,initial as i,on as r}from"../core/reactiveUtils.js";import{property as a}from"../core/accessorSupport/decorators/property.js";import{cast as n}from"../core/accessorSupport/decorators/cast.js";import"../core/has.js";import{subclass as d}from"../core/accessorSupport/decorators/subclass.js";import{formatDate as l,convertDateFormatToIntlOptions as u}from"../intl/date.js";import{system as m}from"../time/timeZoneUtils.js";import{SlideThumbnail as k}from"../webdoc/support/SlideThumbnail.js";import h from"./Widget.js";import c from"./Bookmarks/BookmarksUserState.js";import p from"./Bookmarks/BookmarksViewModel.js";import{css as b}from"./Bookmarks/css.js";import _ from"./FeatureTable/Grid/support/ButtonMenu.js";import g from"./FeatureTable/Grid/support/ButtonMenuItem.js";import{loadCalciteComponents as B}from"./support/componentsUtils.js";import{globalCss as f}from"./support/globalCss.js";import{Heading as v}from"./support/Heading.js";import{legacyIcon as E}from"./support/legacyIcon.js";import{isActivationKey as I}from"./support/widgetUtils.js";import{messageBundle as y}from"./support/decorators/messageBundle.js";import{vmEvent as w}from"./support/decorators/vmEvent.js";import{tsx as S}from"./support/jsxFactory.js";import T from"sortablejs";function A(t,e,o){t.splice(o,0,t.splice(e,1)[0])}const x="bookmarks",U="data-bookmark-uid",C={addBookmark:!0,thumbnail:!0,time:!0},M=/^https:\/\/.*/i,N="esri.widgets.Bookmarks";let j=class extends h{constructor(t,e){super(t,e),this._tooltipReferenceMap=new Map,this._addInputNode=null,this._editInputNode=null,this._urlEditInputNode=null,this._addBookmarkButtonNode=null,this._focusAddBookmarkButton=!1,this._focusEditInputBox=!1,this._focusAddInputBox=!1,this._focusUrlEditInputBox=!1,this._sortable=null,this._sortableNode=null,this._focusSortUid=null,this._selectedSortUid=null,this._sortableSavedItems=[],this._editIncludeTimeExtent=void 0,this._userState=null,this.disabled=!1,this.editingEnabled=!1,this.headingLevel=2,this.iconClass=b.widgetIcon,this.icon=null,this.messages=null,this.messagesCommon=null,this.viewModel=new p,this.visibleElements={...C}}initialize(){this.addHandles([s((()=>this.viewModel?.bookmarks),(()=>this._bookmarksInitialized()),i),s((()=>this.editingEnabled),(()=>this._toggleSorting()),i)])}destroy(){this._destroySortable(),this._editMenu.destroy(),this._tooltipReferenceMap.clear()}loadDependencies(){return B({label:()=>import("@esri/calcite-components/dist/components/calcite-label.js"),switch:()=>import("@esri/calcite-components/dist/components/calcite-switch.js"),tooltip:()=>import("@esri/calcite-components/dist/components/calcite-tooltip.js")})}get _editMenuItems(){const{messages:t,_userState:o}=this,s=o?.editedBookmark?.thumbnail?.url;return[new g({label:t?.menu.refreshThumbnail,iconClass:E.refresh,clickFunction:()=>this._refreshThumbnail()}),new g({label:s&&M.test(s)?t?.menu.editImageUrl:t?.menu.useImageUrl,iconClass:E.link,clickFunction:()=>this._startUseImageUrl()}),s?new g({label:t?.menu.removeThumbnail,iconClass:E.erase,clickFunction:()=>this._removeThumbnail()}):null].filter(e)}get _editMenu(){const{_editMenuItems:t,messages:e,disabled:o}=this,s=this._get("_editMenu");s&&s.destroy();const i=new _({disabled:o,iconClass:E.handleHorizontal,label:e?.menu.label});return i.items=t,i}get defaultCreateOptions(){return this.viewModel.defaultCreateOptions}set defaultCreateOptions(t){this.viewModel.defaultCreateOptions=t}get defaultEditOptions(){return this.viewModel.defaultEditOptions}set defaultEditOptions(t){this.viewModel.defaultEditOptions=t}get bookmarks(){return this.viewModel.bookmarks}set bookmarks(t){this.viewModel.bookmarks=t}get goToOverride(){return this.viewModel.goToOverride}set goToOverride(t){this.viewModel.goToOverride=t}get label(){return this.messages?.widgetLabel??""}set label(t){this._overrideIfSome("label",t)}get view(){return this.viewModel.view}set view(t){this.viewModel.view=t}castVisibleElements(t){return{...C,...t}}endAddBookmark(){this._userState=null}goTo(t){return this.viewModel.goTo(t)}render(){const{state:t}=this.viewModel,e="loading"===t?this._renderLoading():this._renderBookmarks();return S("div",{class:this.classes(b.base,f.widget,f.panel,{[f.widgetDisabled]:this.disabled})},e)}startAddBookmark(){this._userState=new c({state:"add"}),this._focusAddInputBox=!0,this.scheduleRender()}_renderBookmarkTooltips(t){return t.toArray().map((t=>this._renderBookmarkTooltip(t)))??[]}_renderBookmarkTooltip(t){const{_tooltipReferenceMap:e,messagesCommon:o}=this,s=this._getBookmarkTitle(t),i=`${o?.dragHandleTitle} ${s}`;return t?S("calcite-tooltip",{key:`tooltip-${t.uid}`,referenceElement:e.get(t.uid)},i):null}_renderLoading(){return S("div",{class:b.loaderContainer,key:"loader",tabIndex:this.disabled?-1:void 0},S("div",{class:b.loader}))}_renderNoBookmarksContainer(){const{messages:t,disabled:e}=this;return S("div",{class:f.empty,key:"no-bookmarks",tabIndex:e?-1:void 0},S("span",{"aria-hidden":"true",class:this.classes(f.noBookmarksIcon,b.widgetIcon)}),S(v,{level:this.headingLevel,class:this.classes(f.heading,b.noBookmarksHeader)},t?.noBookmarksHeading),S("p",{class:b.noBookmarksDescription},t?.noBookmarksDescription))}_renderAddBookmarkLoading(){return S("div",{key:"adding-bookmark",class:b.addingBookmark},S("span",{"aria-hidden":"true",class:this.classes(E.loadingIndicator,f.rotating)}),this.messages?.addingBookmark)}_renderBookmarkItems(t){if(!t)return[];const{_userState:e,editingEnabled:o}=this;return t.map((t=>o&&t&&e&&("edit"===e.state||"edit-thumbnail"===e.state)&&e.bookmark===t?"edit-thumbnail"===e.state?this._renderEditingBookmarkUrl(e.editedBookmark):this._renderEditingBookmark(e.editedBookmark):this._renderBookmark(t))).toArray()}_renderBookmarksContainer(t){const{_userState:e,editingEnabled:o,disabled:s,view:i}=this,r="add"===e?.state,a=i&&o&&!r?this._renderAddBookmarkButton():null,n=o?r&&e.loading?this._renderAddBookmarkLoading():"add"===e?.state?this._renderAddingBookmark():null:null;return[S("ul",{key:"bookmark-list","aria-label":this.messages?.widgetLabel,class:this.classes(b.bookmarkList,{[b.bookmarkListSortable]:this.editingEnabled}),afterCreate:this._sortNodeCreated,afterRemoved:this._destroySortable,"data-node-ref":"_sortableNode",bind:this,tabIndex:s?-1:void 0},this._renderBookmarkItems(t)),a,n]}_renderAddBookmarkButton(){return this.visibleElements.addBookmark?S("div",{key:"add-bookmark-item",class:b.addBookmark},S("button",{class:this.classes(f.button,f.buttonTertiary,b.addBookmarkButton),disabled:this.disabled,onclick:this.startAddBookmark,afterCreate:this._storeAddBookmarkButton,afterUpdate:this._storeAddBookmarkButton,"data-node-ref":"_addBookmarkButtonNode",bind:this,type:"button"},S("span",{"aria-hidden":"true",class:this.classes(b.addBookmarkIcon,E.plus)}),this.messages?.addBookmark)):null}_renderBookmarks(){const{bookmarks:t}=this.viewModel,e=t&&t.filter(Boolean),o=e&&e.length,s=o||this.editingEnabled?this._renderBookmarksContainer(e):null;return[o?null:this._renderNoBookmarksContainer(),s,this._renderBookmarkTooltips(t)]}_renderEditContainer(t){const{messagesCommon:e,disabled:o}=this,s=this._getBookmarkTitle(t);return S("div",{class:b.bookmarkEditButtonContainer,key:"edit-container"},S("button",{disabled:o,title:`${e?.edit} ${s}`,"aria-label":`${e?.edit} ${s}`,"data-bookmark":t,onclick:this._showEditBookmarkForm,bind:this,class:b.bookmarkEditButton,type:"button"},S("span",{"aria-hidden":"true",class:E.edit})))}_renderDragHandle(t){const{messagesCommon:e,disabled:o}=this,s=this._getBookmarkTitle(t),i={[U]:t.uid};return S("div",{role:"button",tabIndex:o?-1:0,key:"drag-handle",bind:this,class:b.bookmarkDragHandle,onkeydown:this._dragHandleKeydown,"data-bookmark":t,afterCreate:this._focusDragHandle,afterUpdate:this._focusDragHandle,onblur:this._dragHandleBlur,"aria-pressed":this._selectedSortUid===t.uid?"true":"false","aria-label":`${e?.dragHandleTitle} ${s}`,...i},S("span",{"aria-hidden":"true",class:this.classes(b.bookmarkDragHandleIcon,E.handleVertical)}))}_renderBookmarkImageIcon(){return S("span",{"aria-hidden":"true",class:this.classes(b.bookmarkIcon,b.widgetIcon)})}_renderBookmarkImage(t){const{visibleElements:e}=this,{thumbnail:o}=t,s=o&&o.url||"";return e.thumbnail&&s?S("img",{src:s,alt:"",class:b.bookmarkImage}):null}_renderBookmarkTimeSwitch(t){const{messages:e,disabled:o}=this,{timeExtent:s}=t,{view:i}=this.viewModel;return i?.timeExtent??s?S("calcite-label",{layout:"inline-space-between"},e?.includeTimeExtent,S("calcite-switch",{scale:"s",disabled:o,checked:!!s,onCalciteSwitchChange:t=>{this._editIncludeTimeExtent=!!t.target.checked}})):null}_renderBookmarkTimeExtent(t){const{visibleElements:e}=this,{timeExtent:o}=t;return o?S("span",{class:b.timeExtent},[null!=o.start&&S("span",{key:"start-date-group",class:b.timeExtentGroup},S("span",{key:"start-date",class:b.timeExtentDate},this._formatDate(o.start)),e.time&&S("span",{key:"start-time",class:b.timeExtentTime},this._formatTime(o.start))),null!=o.end&&(null==o.start||o.start.getTime()!==o.end.getTime())&&S("span",{key:"end-date-group",class:b.timeExtentGroup},S("span",{key:"end-date",class:b.timeExtentDate},this._formatDate(o.end)),e.time&&S("span",{key:"end-time",class:b.timeExtentTime},this._formatTime(o.end)))]):null}_renderBookmarkButton(t){const{disabled:e}=this,{timeExtent:o}=t,{capabilities:s}=this.viewModel,i=this._getBookmarkTitle(t),{thumbnail:r}=t,a=S("div",{class:this.classes(b.bookmarkImageContainer,r&&r.url?b.bookmarkImageContainerHasImage:null)},this._renderBookmarkImage(t)||this._renderBookmarkImageIcon()),n=s.time&&o?S("span",{key:"time-extent",class:b.bookmarkTimeExtent},this._renderBookmarkTimeExtent(t)):null;return S("button",{disabled:e,key:"bookmark-button",class:b.bookmarkButton,bind:this,"data-bookmark":t,onclick:this._goToBookmark,type:"button"},a,S("div",{class:b.bookmarkLabel},S("span",{key:"bookmark-title",class:b.bookmarkName},i),n))}_renderBookmark(t){const{activeBookmark:e}=this.viewModel,o={[b.bookmarkActive]:e===t},s=this.editingEnabled?this._renderEditContainer(t):null,i={[U]:t.uid},r=this.editingEnabled?this._renderDragHandle(t):null;return S("li",{key:t,class:this.classes(b.bookmark,o),...i},r,this._renderBookmarkButton(t),s)}_renderEditingBookmarkName(t){const{messages:e,_userState:o,disabled:s}=this,i="name-required"===o?.validationState;return S("label",{class:this.classes({[b.authoringLabel]:!0,[b.authoringLabelStartPadding]:!!this.visibleElements?.thumbnail})},e?.title,i?S("strong",null,e?.invalidTitle):null,S("input",{required:!0,disabled:s,bind:this,class:this.classes(f.input,i?b.authoringInputInvalid:null),type:"text",value:t.name,afterCreate:this._storeEditInput,afterUpdate:this._focusEditInput,"data-bookmark":t,"data-node-ref":"_editInputNode",placeholder:e?.titlePlaceholder}))}_renderEditingBookmarkUrlActions(){const{messagesCommon:t,disabled:e}=this;return S("div",{class:b.authoringActions},S("input",{type:"button",disabled:e,value:t?.back,class:this.classes(f.button,f.buttonTertiary),onclick:this._closeUrlEditBookmarkForm,bind:this}),S("input",{class:f.button,disabled:e,type:"submit",value:t?.add}))}_renderEditingBookmarkActions(){const{messagesCommon:t,disabled:e}=this,o=this._userState?.bookmark;return S("div",{class:b.authoringActions},S("input",{type:"button",disabled:e,value:t?.delete,class:this.classes(f.button,f.buttonTertiary,b.authoringDeleteButton),"data-bookmark":o,onclick:this._deleteBookmark,bind:this}),S("input",{disabled:e,type:"button",value:t?.cancel,class:this.classes(f.button,f.buttonTertiary),onclick:this._closeEditBookmarkForm,bind:this}),S("input",{class:f.button,disabled:e,type:"submit",value:t?.save}))}_renderEditingBookmarkUrlInput(t){const{messages:e,_userState:o,disabled:s}=this,i=t.thumbnail?.url,r=i&&M.test(i)?i:void 0,a="absolute-url-required"===o?.validationState;return S("label",{class:this.classes({[b.authoringLabel]:!0,[b.authoringLabelStartPadding]:!!this.visibleElements?.thumbnail})},a?S("strong",null,e?.invalidImageUrl):null,S("input",{required:!0,disabled:s,bind:this,class:this.classes(f.input,a?b.authoringInputInvalid:null),type:"text",value:r,afterCreate:this._storeUrlEditInput,afterUpdate:this._focusUrlEditInput,"data-bookmark":t,"data-node-ref":"_urlEditInputNode",title:e?.imageUrlTooltip,placeholder:e?`https://<${e.imageUrlPlaceholder}>`:void 0}))}_renderEditingBookmarkUrl(t){if(!t)return null;const e={[U]:t.uid};return S("li",{key:"edit-bookmark-url-form",class:b.authoringCard,...e},S("form",{class:b.authoringForm,disabled:this.disabled,onsubmit:this._editBookmarkUrlSubmit,bind:this},this._renderEditingBookmarkUrlInput(t),this._renderEditingBookmarkUrlActions()))}_renderEditingBookmark(t){if(!t)return null;const e={[U]:t.uid},{capabilities:o}=this.viewModel,s=o.time?S("div",{key:"edit-bookmark-time-container",class:b.timeExtentContainer},this._renderBookmarkTimeSwitch(t),this._editIncludeTimeExtent&&this._renderBookmarkTimeExtent(t)):null;return S("li",{key:"edit-bookmark-form",class:b.authoringCard,...e},S("form",{class:b.authoringForm,disabled:this.disabled,onsubmit:this._editBookmarkSubmit,bind:this},S("div",{class:b.authoringContainer},this.visibleElements.thumbnail?S("div",{class:b.bookmarkImageContainer},this._renderBookmarkImage(t),this._editMenu.render()):null,this._renderEditingBookmarkName(t)),s,this._renderEditingBookmarkActions()))}_renderAddingBookmarkName(){const{_userState:t,messages:e,disabled:o}=this,s="name-required"===t?.validationState;return S("label",{class:b.authoringLabel},e?.title,s?S("strong",null,e?.invalidTitle):null,S("input",{required:!0,disabled:o,bind:this,class:this.classes(f.input,s?b.authoringInputInvalid:null),type:"text",afterCreate:this._storeAddInput,afterUpdate:this._focusAddInput,"data-node-ref":"_addInputNode",value:"",placeholder:e?.titlePlaceholder}))}_renderAddingBookmarkActions(){const{messagesCommon:t,disabled:e}=this;return S("div",{class:this.classes(b.authoringActions)},S("input",{type:"button",disabled:e,value:t?.cancel,class:this.classes(f.button,f.buttonTertiary,b.authoringCancelButton),onclick:this._endAddBookmark.bind(this),bind:this}),S("input",{class:f.button,disabled:e,type:"submit",value:t?.add}))}_renderAddingBookmark(){return S("div",{key:"add-bookmark-form",class:b.authoringCard},S("form",{class:this.classes(b.authoringForm,b.authoringFormAdding),onsubmit:this._addBookmarkSubmit,bind:this},this._renderAddingBookmarkName(),this._renderAddingBookmarkActions()))}_setTooltipReference(t,e){this._tooltipReferenceMap.set(e.uid,t),this.scheduleRender()}_getBookmarkTitle(t){return(t?.name||this.messagesCommon?.untitled)??""}_formatDate(t){return t?l(t,{...u("short-date"),timeZone:this.view?.timeZone??m}):""}_formatTime(t){return t?l(t,{...u("long-time"),timeZone:this.view?.timeZone??m}):""}_dragHandleBlur(){this._selectedSortUid=null,this.scheduleRender()}_dragHandleKeydown(t){const{_sortableSavedItems:e}=this,s=["ArrowDown","ArrowUp","Escape","Tab"," ","Enter"],i=o(t);if(!s.includes(i))return;const{_sortable:r,_selectedSortUid:a}=this;if(!r)return;const n=r.toArray(),d=t.target.getAttribute(U),l=n.indexOf(d);if(I(i)){const t=a&&a===d;return this._selectedSortUid=t?null:d,this._sortableSavedItems=t?[]:r.toArray(),void this.scheduleRender()}if("Tab"===i)return this._selectedSortUid=null,void this.scheduleRender();if("Escape"===i&&0!==e.length)return t.stopPropagation(),this._selectedSortUid=null,this._updateSortItems(e,r,d),void this.scheduleRender();if(-1===l||!a)return;const u="ArrowUp"===i?l-1:l+1;u>=n.length||u<=-1||(A(n,l,u),this._updateSortItems(n,r,d))}_updateSortItems(t,e,o){e.sort(t),this._sortBookmarks(e),this._focusSortUid=o,this._selectedSortUid=o}_focusDragHandle(t){const e=H(t);if(!e)return;this._setTooltipReference(t,e);const{_focusSortUid:o}=this;if(!t||!o)return;t.getAttribute(U)===o&&(t.focus(),this._focusSortUid=null)}_toggleSorting(){const{_sortable:t,_sortableNode:e,editingEnabled:o,disabled:s}=this;if(e)if(t)t.option("disabled",s||!o);else{const t=T.create(e,{dataIdAttr:U,handle:`.${b.bookmarkDragHandle}`,group:x,disabled:s||!o,onSort:()=>this._sortBookmarks(t)});this._sortable=t}}_sortNodeCreated(t){this._sortableNode=t,this._toggleSorting()}_sortBookmarks(t){const{bookmarks:e}=this.viewModel;if(!e)return;const o=t.toArray();e.sort(((t,e)=>{const s=o.indexOf(t.uid),i=o.indexOf(e.uid);return s>i?1:s<i?-1:0}))}_destroySortable(){const{_sortable:t}=this;t&&t.destroy(),this._sortable=null}_endAddBookmark(){this._focusAddBookmarkButton=!0,this.endAddBookmark()}_bookmarksInitialized(){const t="bookmarks-init";this.removeHandles(t),this.addHandles(r((()=>this.viewModel?.bookmarks),"change",(()=>this._bookmarksChanged())),t)}_bookmarksChanged(){const t="bookmarks-change",{bookmarks:e}=this.viewModel;this.removeHandles(t);const o=e.map((t=>s((()=>[t?.name,t?.thumbnail?.url]),(()=>this.scheduleRender()))));this.addHandles(o.toArray(),t),this.scheduleRender()}_showEditBookmarkForm(t){const e=H(t.currentTarget);e&&(this._editIncludeTimeExtent=!!e.timeExtent,this._focusEditInputBox=!0,this._userState=new c({bookmark:e,state:"edit"}),this.viewModel.goTo(e),this.scheduleRender())}_closeUrlEditBookmarkForm(){this._focusEditInputBox=!0,this._userState&&(this._userState.state="edit")}_closeEditBookmarkForm(){this._userState=null}_addBookmarkSubmit(t){t.preventDefault();const{_addInputNode:e,_userState:o}=this;if(!o)return;const s=e?e.value.trim():null;s?(o.loading=!0,this.viewModel.createBookmark().then((t=>{t.name=s,this.viewModel.bookmarks.add(t),this._endAddBookmark()}))):o.validationState="name-required"}async _editBookmarkAndClose(t,e){const{viewModel:o}=this;await o.editBookmark(t,{...o.defaultEditOptions,...e}),this._closeEditBookmarkForm()}_editBookmarkSubmit(t){t.preventDefault();const{_editInputNode:e,_userState:o,_editIncludeTimeExtent:s}=this;if(!o?.bookmark||!o.editedBookmark)return;const i=e&&e.value.trim();i?(o.bookmark.name=i,o.bookmark.thumbnail=o.editedBookmark.thumbnail,s||(o.bookmark.timeExtent=null),this._editBookmarkAndClose(o.bookmark,{takeScreenshot:!1,captureTimeExtent:s})):o.validationState="name-required"}_storeAddBookmarkButton(t){this._addBookmarkButtonNode=t,this._focusAddBookmark()}_storeEditInput(t){this._editInputNode=t,this._focusEditInput()}_storeAddInput(t){this._addInputNode=t,this._focusAddInput()}_storeUrlEditInput(t){this._urlEditInputNode=t,this._focusUrlEditInput()}_focusUrlEditInput(){this._urlEditInputNode&&this._focusUrlEditInputBox&&(this._focusUrlEditInputBox=!1,this._urlEditInputNode.focus())}_focusAddInput(){this._addInputNode&&this._focusAddInputBox&&(this._focusAddInputBox=!1,this._addInputNode.focus())}_focusAddBookmark(){this._addBookmarkButtonNode&&this._focusAddBookmarkButton&&(this._focusAddBookmarkButton=!1,this._addBookmarkButtonNode.focus())}_focusEditInput(){this._editInputNode&&this._focusEditInputBox&&(this._focusEditInputBox=!1,this._editInputNode.focus())}_deleteBookmark(t){const e=H(t.currentTarget);e&&this.viewModel.bookmarks.remove(e)}_goToBookmark(t){const e=H(t.currentTarget);e&&(this.endAddBookmark(),this._closeEditBookmarkForm(),this.viewModel.goTo(e))}async _refreshThumbnail(){const{_userState:t,_editMenu:e,viewModel:o}=this;t&&(t.validationState=void 0,await o.editBookmark(t.editedBookmark,{takeScreenshot:!0,captureViewpoint:!1,captureRotation:!1,captureScale:!1,captureTimeExtent:!1}),e.open=!1,this._focusEditInputBox=!0,this.scheduleRender())}_removeThumbnail(){const{_userState:t,_editMenu:e}=this;t?.editedBookmark&&(t.editedBookmark.thumbnail=null,t.validationState=void 0,e.open=!1,this._focusEditInputBox=!0,this.scheduleRender())}_startUseImageUrl(){this._userState&&(this._userState.state="edit-thumbnail"),this._editMenu.open=!1,this._focusUrlEditInputBox=!0,this.scheduleRender()}_editBookmarkUrlSubmit(t){t.preventDefault();const{_urlEditInputNode:e,_userState:o}=this;if(!e||!o)return;const s=e.value;M.test(s)?(s&&o.editedBookmark&&(o.editedBookmark.thumbnail=new k({url:s})),this._closeUrlEditBookmarkForm()):o.validationState="absolute-url-required"}};function H(t){return t["data-bookmark"]}t([a()],j.prototype,"_editIncludeTimeExtent",void 0),t([a({type:c})],j.prototype,"_userState",void 0),t([a({readOnly:!0})],j.prototype,"_editMenuItems",null),t([a({readOnly:!0})],j.prototype,"_editMenu",null),t([a()],j.prototype,"defaultCreateOptions",null),t([a()],j.prototype,"defaultEditOptions",null),t([a()],j.prototype,"bookmarks",null),t([a()],j.prototype,"disabled",void 0),t([a()],j.prototype,"editingEnabled",void 0),t([a()],j.prototype,"headingLevel",void 0),t([a()],j.prototype,"goToOverride",null),t([a()],j.prototype,"iconClass",void 0),t([a()],j.prototype,"icon",void 0),t([a()],j.prototype,"label",null),t([a(),y("esri/widgets/Bookmarks/t9n/Bookmarks")],j.prototype,"messages",void 0),t([a(),y("esri/t9n/common")],j.prototype,"messagesCommon",void 0),t([a()],j.prototype,"uiStrings",void 0),t([a()],j.prototype,"view",null),t([a({type:p}),w(["select-bookmark","bookmark-edit","bookmark-select"])],j.prototype,"viewModel",void 0),t([a()],j.prototype,"visibleElements",void 0),t([n("visibleElements")],j.prototype,"castVisibleElements",null),t([a()],j.prototype,"endAddBookmark",null),t([a()],j.prototype,"startAddBookmark",null),j=t([d(N)],j);const D=j;export{D 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 t from"../../Graphic.js";import{remove as a,isSome as i}from"../../core/arrayUtils.js";import{makeHandle as r,handlesGroup as n}from"../../core/handleUtils.js";import{removeMaybe as s,destroyMaybe as o}from"../../core/maybe.js";import{debounce as l}from"../../core/promiseUtils.js";import{watch as c,whenOnce as d,syncAndInitial as u}from"../../core/reactiveUtils.js";import{generateBracedUUID as p}from"../../core/uuid.js";import{property as h}from"../../core/accessorSupport/decorators/property.js";import"../../core/accessorSupport/ensureType.js";import"../../core/has.js";import{subclass as f}from"../../core/accessorSupport/decorators/subclass.js";import{getEffectiveLayerCapabilities as m,getEffectiveEditingEnabled as g,isTable as w}from"../../layers/support/layerUtils.js";import{getDrawHelpMessage as y}from"../../views/draw/support/helpMessageUtils.js";import v from"../../views/interactive/snapping/FeatureSnappingLayerSource.js";import{CreateFeaturesWorkflowData as _}from"./CreateFeaturesWorkflowData.js";import{isModelUpload as M,handleModelUpload as b}from"./modelUploadUtils.js";import F from"./Workflow.js";import{shouldShowAttachmentsForCreateWorkflow as I,startCreatingNewFeature as A,findLayerInfo as k,updateGraphicSymbolWhenRequired as H,isTerminalUpdateEventType as C,getVisualVariableAttributes as V,startUpdatingFeature as S,createWorkflowSteps as j,avoidFeatureTemplateSelectionWithOnlyOneItem as D,showProgressCursor as U,visualVariableInteractiveUpdate as E,prepareAttachmentsForCreateWorkflow as G}from"./workflowUtils.js";var O;const T=Symbol(),P=Symbol(),W=Symbol();let x=O=class extends F{constructor(e){super(e),this.type="create-features",this.createFeatureState="create-new",this._getDrawMeshHelpMessage=void 0,this._featureFormHandle=null,this._visualVariableAttributes={rotation:null,size:null},this._attachmentFileInfos=new Map,this._highlightHandles=new Map,this._preventDefaultActionOnCancel=!1,this._lastActiveGraphics=[],this._updateGraphicDebounced=l(((e,t,a)=>H(e,t,a)))}get hasPendingEdits(){if(this.numPendingFeatures)return!0;const{data:e}=this,{upload:t}=e;return!(!t||"pending"!==t.state&&"success"!==t.state)||!!e.creationInfo?.geometryToPlace}get helpMessage(){const{creationInfo:e,viewModel:t}=this.data;if("creating-features"!==this.stepId||!e)return;const a=e.layer.geometryType,i=t.sketchViewModel.createGraphic;if("mesh"===a){this._getDrawMeshHelpMessage||import("../../views/draw/support/helpMessageUtils3d.js").then((e=>{this._getDrawMeshHelpMessage=e.getDrawMeshHelpMessage}));const{view:e}=t;return"3d"===e?.type?this._getDrawMeshHelpMessage?.(i,e):void 0}return y(a,i?.geometry)}get numPendingFeatures(){return this.pendingFeatures.length}get parent(){return this.data.parent}get pendingFeatures(){return this.data.pendingFeatures}get keyboardCancellationEnabled(){return 0===this.numPendingFeatures}get reliesOnOwnerAdminPrivileges(){const{creationInfo:e}=this.data;if(!e)return!1;const{layer:t}=e,a=t.capabilities?.operations.supportsAdd,i=m(t)?.operations.supportsAdd;return g(t)&&!t.editingEnabled||!!i&&!a}get shouldShowAttachments(){return!!(this.data&&this.data.creationInfo&&this.data.viewModel)&&I(this.data)}get shouldAllowAttachmentEditing(){return this.shouldShowAttachments}get test(){return{addAttachment:(e,t)=>{this._attachmentFileInfos.set(e,t)}}}async enter(){const{featureFormViewModel:e}=this.data.viewModel,t=e.relatedRecordCallbacks;e.relatedRecordCallbacks=null,this.addHandles(r((()=>{e.relatedRecordCallbacks=t})),P)}exit(){this.removeHandles(P)}async updatePendingFeature(e,t){return this._preventDefaultActionOnCancel=!0,this.data.viewModel.sketchViewModel.cancel(),a(this._lastActiveGraphics,e),this._startUpdating(e,t)}static create(e){const{addAttachmentsCallback:t,applyEditsCallback:a,creationInfo:i,parent:r,startAt:n,viewModel:s}=e,o=new O({data:new _({creationInfo:i,parent:r,viewModel:s}),onCommit:async e=>{const{creationInfo:i}=e;if(!i)return;const r=e.pendingFeatures.toArray(),{layer:n}=i,s=n.capabilities?.editing.supportsGlobalId&&"globalIdField"in n,l=o._attachmentFileInfos;if(s){const e=z(r,n,l);return void await a(n,e,{globalIdUsed:!0})}const c=await a(n,{addFeatures:r});if(l.size>0){const e=c?.addFeatureResults??[];await t(n,L(r,e,n,l))}}});return o._set("steps",this._createWorkflowSteps(o,n)),o}_fadeExistingFeatures(e){if("effect"in e){const t=e.effect;return e.effect="saturate(0.6) opacity(0.8)",r((()=>e.effect=t))}const t=e.opacity;return e.opacity=.7,r((()=>e.opacity=t))}_highlight(e){const t=this.data.viewModel.view;"3d"===t?.type&&this._highlightHandles.set(e,t.highlight(e))}_removeHighlight(e){s(this._highlightHandles.get(e)),this._highlightHandles.delete(e)}async _startCreating(e){this.removeHandles(W);const{data:t}=this,{creationInfo:a}=t;if(!a)return;this.createFeatureState="create-new";const i=await A(t.viewModel.sketchViewModel,a,e);this.addHandles(i,W)}async _startUpdating(e,t){const{pendingFeatures:a}=this;a.includes(e)||a.add(e);const{creationInfo:i,viewModel:r}=this.data,{featureFormViewModel:o,layerInfos:l,sketchViewModel:d,view:u}=r;if(!u||!i)return;const p=i.layer,h=k(l,p),f=h?.formTemplate,m=u.spatialReference;if(o.set({arcadeEditType:"INSERT",feature:e,formTemplate:f,spatialReference:m,map:u.map}),this._removeHighlight(e),await H(e,t,"2d"===u.type?u.scale:null),this.removeHandles(W),s(this._featureFormHandle),"2d"===u.type){const a=c((()=>u.scale),(a=>this._updateGraphicDebounced(e,t,a)));this.addHandles(a,W)}return this._featureFormHandle=n([o.on("value-change",(async()=>{e.attributes=o.getValues(),await H(e,t,"2d"===u.type?u.scale:null)})),d.on(["update","undo","redo"],(e=>{("undo"===e.type||"redo"===e.type||"update"===e.type&&null!=e.toolEventInfo&&C(e.toolEventInfo.type))&&o.notifyFeatureGeometryChanged()}))]),this.createFeatureState="update-pending",this._visualVariableAttributes=V(e),w(p)?void 0:S({graphic:e,sketchViewModel:d,sourceLayer:p,visualVariables:this._visualVariableAttributes,webStyleCache:t})}static _createWorkflowSteps(e,a="awaiting-feature-creation-info"){const{data:n}=e,o=j(["awaiting-feature-creation-info","creating-features","adding-attachment","editing-attachment"],a,{"awaiting-feature-creation-info":()=>({id:"awaiting-feature-creation-info",async setUp(){const{creationInfo:a,viewModel:i}=n,{view:r}=i;r&&(M(a)?e.addHandles(await b({view:r,data:n,next:()=>e.next(),cancel:()=>i.cancelWorkflow({warnIfNoWorkflow:!1})}),this.id):n.parent&&a?(i.featureTemplatesViewModel.layers=[a.layer],e.addHandles(i.featureTemplatesViewModel.on("select",(({item:i})=>{i&&(a.template=i.template,a.initialFeature=new t({sourceLayer:i.layer,attributes:{...i.template.prototype.attributes,...a.attributeOverrides}}),e.next())})),this.id)):e.addHandles(i.featureTemplatesViewModel.on("select",(({item:t})=>{t&&(n.creationInfo={...n.creationInfo,layer:t.layer,template:t.template},e.next())})),this.id))},async tearDown(){e.removeHandles([this.id,W])}}),"creating-features":()=>({id:"creating-features",async setUp(){if(e.hasHandles(this.id))return;const{creationInfo:t,viewModel:a}=n,{view:o}=a;if(!o)return;const l=new Map,d=[],u=[];e._lastActiveGraphics=[],e._featureFormHandle=s(e._featureFormHandle),e._visualVariableAttributes={rotation:null,size:null},G(a.attachmentsViewModel),d.push(c((()=>a.attachmentsViewModel.mode),(t=>{switch(t){case"add":e.go("adding-attachment");break;case"edit":e.go("editing-attachment")}})));const p=U(o);d.push(p);const h=w(t?.layer);try{if(!h){const t=O._configureSketchViewModel(e,l);d.push(t.beforeCommit),u.push(t.afterCommit)}M(t)&&u.push(r((()=>a.cancelWorkflow({warnIfNoWorkflow:!1}))));const i=t?.initialFeature;i?(h||a.sketchViewModel.layer.add(i),await e._startUpdating(i,l)):await e._startCreating(l)}finally{p.remove()}d.push(e._featureFormHandle),e.addHandles(d.filter(i),e._handleKeys.beforeCommit),e.addHandles([...d,...u].filter(i),this.id)},async tearDown(t){const{viewModel:a}=n;if(t.canceled){const{pendingFeatures:t}=e;t.drain((e=>a.sketchViewModel.layer.remove(e))),e.removeHandles([this.id,T,W]),a.attachmentsViewModel.fileInfos.removeAll(),e._attachmentFileInfos.clear()}}}),"adding-attachment":()=>({id:"adding-attachment",parent:"creating-features",async setUp(){},async tearDown(){const{attachmentsViewModel:t}=n.viewModel,{graphic:a,fileInfos:i}=t;e._attachmentFileInfos.set(a,i.toArray()),t.mode="view"}}),"editing-attachment":()=>({id:"editing-attachment",parent:"creating-features",async setUp(){},async tearDown(){const{attachmentsViewModel:t}=n.viewModel,{graphic:a,fileInfos:i}=t;e._attachmentFileInfos.set(a,i.toArray()),t.mode="view"}})});return D(n,o)}static _configureSketchViewModel(e,t){const{data:i}=e,{viewModel:s}=i,{view:o}=s,l=s.sketchViewModel;let c=null;const u=[];if(!o)return{beforeCommit:r(),afterCommit:r()};const p=l.updateOnGraphicClick;return l.updateOnGraphicClick=!1,"2d"===o.type&&i.creationInfo&&u.push(e._fadeExistingFeatures(i.creationInfo.layer)),u.push(l.on("create",(async a=>{if("cancel"===a.state){if(e._preventDefaultActionOnCancel)return void(e._preventDefaultActionOnCancel=!1);if(e._lastActiveGraphics.length<1)return e._startCreating(t);const a=e._lastActiveGraphics.pop();return e._startUpdating(a,t)}if("complete"===a.state&&a.graphic)return e._startUpdating(a.graphic,t)})),l.on("update",(async a=>{const{viewModel:r}=i,{attachmentsViewModel:n,featureFormViewModel:s}=r,l=a.graphics[0];if("complete"===a.state){if(l!==c&&(e._lastActiveGraphics.push(l),e._highlight(l)),c=null,e.numPendingFeatures===i.creationInfo?.maxFeatures){const a=e._lastActiveGraphics.pop();return e._startUpdating(a,t)}if("add"!==n.mode&&"edit"!==n.mode||r.activeWorkflow?.previous(),a.aborted&&e._preventDefaultActionOnCancel)return void(e._preventDefaultActionOnCancel=!1);e.addHandles([U(o),o.on("click",(e=>e.preventDefault()))],T),await d((()=>!s.updating)),e.removeHandles(T),e._startCreating(t)}if("start"===a.state){e._removeHighlight(l),"add"!==n.mode&&"edit"!==n.mode||r.activeWorkflow?.previous(),n.fileInfos.removeAll(),n.graphic=l,n.mode="view";(e._attachmentFileInfos.get(l)||[]).forEach((({file:e,form:t})=>n.addFile(e,t)))}const u=e._visualVariableAttributes;await E(o,l,a,u,t);const p=l.attributes,{rotation:h,size:f}=u;if(null!=h){const{field:e}=h;s.setValue(e,p[e])}if(null!=f){const{field:e}=f;s.setValue(e,p[e])}})),l.on("delete",(async t=>{const i=t.graphics[0];e.pendingFeatures.remove(i),a(e._lastActiveGraphics,i),c=i})),o.on("immediate-click",(async a=>{if(M(i.creationInfo))return;const{results:r}=await o.hitTest(a,{include:l.layer}),n=r.find((e=>"graphic"===e.type));if(!n)return;const s=n.graphic;if("transform"===l.activeTool||"reshape"===l.activeTool){if(l.updateGraphics.at(0)===s)return;await e.updatePendingFeature(s,t)}})),r((()=>{e._preventDefaultActionOnCancel=!0,l.cancel()})),R(l,i)),{beforeCommit:n(u),afterCommit:r((()=>{l.updateOnGraphicClick=p}))}}};function R(e,t){let a=null;const i=()=>e.snappingOptions.featureSources,s=()=>(a=new v({layer:e.layer}),i().add(a),a),l=()=>{null!=a&&(i().remove(a),a=o(a))};return n([c((()=>{const e=t.creationInfo?.layer,a=i().find((t=>t.layer===e));return{hasFeatureLayerSource:!!a,enabled:a?.enabled??!1}}),(({hasFeatureLayerSource:e,enabled:t})=>{if(!e)return l();a??=s(),a.enabled=t}),u),r(l)])}function L(e,t,a,i){const r=[];return t.forEach(((t,n)=>{if(!t.error){const s=e[n],o=i.get(s)||[];s.attributes[a.objectIdField]=t.objectId,o.forEach((({form:e})=>r.push({feature:s,attachment:e})))}})),r}function z(e,t,a){const i=[],r=t.globalIdField;return e.forEach(((t,n)=>{e[n].attributes[r]??=p(),(a?.get(t)||[]).forEach((({file:e})=>i.push({feature:t,attachment:{globalId:p(),data:e}})))})),i.length?{addFeatures:e,addAttachments:i}:{addFeatures:e}}e([h()],x.prototype,"hasPendingEdits",null),e([h()],x.prototype,"_getDrawMeshHelpMessage",void 0),e([h()],x.prototype,"helpMessage",null),e([h()],x.prototype,"parent",null),e([h()],x.prototype,"keyboardCancellationEnabled",null),e([h()],x.prototype,"reliesOnOwnerAdminPrivileges",null),e([h()],x.prototype,"shouldShowAttachments",null),e([h()],x.prototype,"shouldAllowAttachmentEditing",null),x=O=e([f("esri.widgets.Editor.CreateFeaturesWorkflow")],x);const N=x;export{N as default};
|
|
5
|
+
import{_ as e}from"../../chunks/tslib.es6.js";import t from"../../Graphic.js";import{remove as a,isSome as i}from"../../core/arrayUtils.js";import{makeHandle as r,handlesGroup as n}from"../../core/handleUtils.js";import{removeMaybe as s,destroyMaybe as o}from"../../core/maybe.js";import{debounce as l}from"../../core/promiseUtils.js";import{watch as c,whenOnce as d,syncAndInitial as u}from"../../core/reactiveUtils.js";import{generateBracedUUID as p}from"../../core/uuid.js";import{property as h}from"../../core/accessorSupport/decorators/property.js";import"../../core/accessorSupport/ensureType.js";import"../../core/has.js";import{subclass as f}from"../../core/accessorSupport/decorators/subclass.js";import{getEffectiveLayerCapabilities as m,getEffectiveEditingEnabled as g,isTable as w}from"../../layers/support/layerUtils.js";import{getDrawHelpMessage as y}from"../../views/draw/support/helpMessageUtils.js";import v from"../../views/interactive/snapping/FeatureSnappingLayerSource.js";import{CreateFeaturesWorkflowData as _}from"./CreateFeaturesWorkflowData.js";import{isModelUpload as M,handleModelUpload as b}from"./modelUploadUtils.js";import F from"./Workflow.js";import{shouldShowAttachmentsForCreateWorkflow as I,startCreatingNewFeature as A,findLayerInfo as k,updateGraphicSymbolWhenRequired as H,isTerminalUpdateEventType as C,getVisualVariableAttributes as V,startUpdatingFeature as S,createWorkflowSteps as j,avoidFeatureTemplateSelectionWithOnlyOneItem as U,showProgressCursor as D,visualVariableInteractiveUpdate as E,prepareAttachmentsForCreateWorkflow as G}from"./workflowUtils.js";var O;const T=Symbol(),P=Symbol(),W=Symbol(),x=Symbol();let R=O=class extends F{constructor(e){super(e),this.type="create-features",this.createFeatureState="create-new",this._getDrawMeshHelpMessage=void 0,this._featureFormHandle=null,this._visualVariableAttributes={rotation:null,size:null},this._attachmentFileInfos=new Map,this._highlightHandles=new Map,this._preventDefaultActionOnCancel=!1,this._lastActiveGraphics=[],this._updateGraphicDebounced=l(((e,t,a)=>H(e,t,a)))}get hasPendingEdits(){if(this.numPendingFeatures)return!0;const{data:e}=this,{upload:t}=e;return!(!t||"pending"!==t.state&&"success"!==t.state)||!!e.creationInfo?.geometryToPlace}get helpMessage(){const{creationInfo:e,viewModel:t}=this.data;if("creating-features"!==this.stepId||!e)return;const a=e.layer.geometryType,i=t.sketchViewModel.createGraphic;if("mesh"===a){this._getDrawMeshHelpMessage||import("../../views/draw/support/helpMessageUtils3d.js").then((e=>{this._getDrawMeshHelpMessage=e.getDrawMeshHelpMessage}));const{view:e}=t;return"3d"===e?.type?this._getDrawMeshHelpMessage?.(i,e):void 0}return y(a,i?.geometry)}get numPendingFeatures(){return this.pendingFeatures.length}get parent(){return this.data.parent}get pendingFeatures(){return this.data.pendingFeatures}get keyboardCancellationEnabled(){return 0===this.numPendingFeatures}get reliesOnOwnerAdminPrivileges(){const{creationInfo:e}=this.data;if(!e)return!1;const{layer:t}=e,a=t.capabilities?.operations.supportsAdd,i=m(t)?.operations.supportsAdd;return g(t)&&!t.editingEnabled||!!i&&!a}get shouldShowAttachments(){return!!(this.data&&this.data.creationInfo&&this.data.viewModel)&&I(this.data)}get shouldAllowAttachmentEditing(){return this.shouldShowAttachments}get test(){return{addAttachment:(e,t)=>{this._attachmentFileInfos.set(e,t)}}}async enter(){const{featureFormViewModel:e}=this.data.viewModel,t=e.relatedRecordCallbacks;e.relatedRecordCallbacks=null,this.addHandles(r((()=>{e.relatedRecordCallbacks=t})),P)}exit(){this.removeHandles(P)}async updatePendingFeature(e,t){return this._preventDefaultActionOnCancel=!0,this.data.viewModel.sketchViewModel.cancel(),a(this._lastActiveGraphics,e),this._startUpdating(e,t)}static create(e){const{addAttachmentsCallback:t,applyEditsCallback:a,creationInfo:i,parent:r,startAt:n,viewModel:s}=e,o=new O({data:new _({creationInfo:i,parent:r,viewModel:s}),onCommit:async e=>{const{creationInfo:i}=e;if(!i)return;const r=e.pendingFeatures.toArray(),{layer:n}=i,s=n.capabilities?.editing.supportsGlobalId&&"globalIdField"in n,l=o._attachmentFileInfos;if(s){const e=N(r,n,l);return void await a(n,e,{globalIdUsed:!0})}const c=await a(n,{addFeatures:r});if(l.size>0){const e=c?.addFeatureResults??[];await t(n,z(r,e,n,l))}}});return o._set("steps",this._createWorkflowSteps(o,n)),o}_fadeExistingFeatures(e){if("effect"in e){const t=e.effect;return e.effect="saturate(0.6) opacity(0.8)",r((()=>e.effect=t))}const t=e.opacity;return e.opacity=.7,r((()=>e.opacity=t))}_highlight(e){const t=this.data.viewModel.view;"3d"===t?.type&&this._highlightHandles.set(e,t.highlight(e))}_removeHighlight(e){s(this._highlightHandles.get(e)),this._highlightHandles.delete(e)}async _startCreating(e){this.removeHandles(x);const{data:t}=this,{creationInfo:a}=t;if(!a)return;this.createFeatureState="create-new";const i=await A(t.viewModel.sketchViewModel,a,e);this.addHandles(i,x)}async _startUpdating(e,t){const{pendingFeatures:a}=this;a.includes(e)||a.add(e);const{creationInfo:i,viewModel:r}=this.data,{featureFormViewModel:o,layerInfos:l,sketchViewModel:d,view:u}=r;if(!u||!i)return;const p=i.layer,h=k(l,p),f=h?.formTemplate,m=u.spatialReference;if(o.set({arcadeEditType:"INSERT",feature:e,formTemplate:f,spatialReference:m,map:u.map}),this._removeHighlight(e),await H(e,t,"2d"===u.type?u.scale:null),this.removeHandles(x),s(this._featureFormHandle),"2d"===u.type){const a=c((()=>u.scale),(a=>this._updateGraphicDebounced(e,t,a)));this.addHandles(a,x)}return this._featureFormHandle=n([o.on("value-change",(async()=>{e.attributes=o.getValues(),await H(e,t,"2d"===u.type?u.scale:null)})),d.on(["update","undo","redo"],(e=>{("undo"===e.type||"redo"===e.type||"update"===e.type&&null!=e.toolEventInfo&&C(e.toolEventInfo.type))&&o.notifyFeatureGeometryChanged()}))]),this.createFeatureState="update-pending",this._visualVariableAttributes=V(e),w(p)?void 0:S({graphic:e,sketchViewModel:d,sourceLayer:p,visualVariables:this._visualVariableAttributes,webStyleCache:t})}static _createWorkflowSteps(e,a="awaiting-feature-creation-info"){const{data:n}=e,o=j(["awaiting-feature-creation-info","creating-features","adding-attachment","editing-attachment"],a,{"awaiting-feature-creation-info":()=>({id:"awaiting-feature-creation-info",async setUp(){const{creationInfo:t,viewModel:a}=n,{view:i}=a;i&&(M(t)?e.addHandles(await b({view:i,data:n,next:()=>e.next(),cancel:()=>a.cancelWorkflow({warnIfNoWorkflow:!1})}),this.id):(n.parent&&t&&(e.addHandles(a.lockFeatureTemplatesViewModel(),this.id),a.featureTemplatesViewModel.layers=[t.layer]),e.addHandles(a.featureTemplatesViewModel.on("select",(({item:t})=>{t&&(n.creationInfo={...n.creationInfo,layer:t.layer,template:t.template},e.next())})),this.id)))},async tearDown(){e.removeHandles([this.id,x])}}),"creating-features":()=>({id:"creating-features",async setUp(){if(e.hasHandles(this.id))return;const{creationInfo:a,viewModel:o}=n,{view:l}=o;if(!l)return;const d=new Map,u=[],p=[];e._lastActiveGraphics=[],e._featureFormHandle=s(e._featureFormHandle),e._visualVariableAttributes={rotation:null,size:null},G(o.attachmentsViewModel),u.push(c((()=>o.attachmentsViewModel.mode),(t=>{switch(t){case"add":e.go("adding-attachment");break;case"edit":e.go("editing-attachment")}})));const h=D(l);u.push(h);const f=w(a?.layer);try{if(!f){const t=O._configureSketchViewModel(e,d);u.push(t.beforeCommit),p.push(t.afterCommit)}if(M(a)&&p.push(r((()=>o.cancelWorkflow({warnIfNoWorkflow:!1})))),f){const i=a?.initialFeature??new t({attributes:{...a?.template?.prototype.attributes,...a?.attributeOverrides},sourceLayer:a?.layer});await e._startUpdating(i,d)}else a?.initialFeature&&(o.sketchViewModel.layer.add(a.initialFeature),await e._startUpdating(a.initialFeature,d)),await e._startCreating(d)}finally{h.remove()}const m=r((()=>e.pendingFeatures.drain((e=>n.viewModel.sketchViewModel.layer.remove(e)))));u.push(e._featureFormHandle),e.addHandles(u.filter(i),e._handleKeys.beforeCommit),e.addHandles([...u,...p].filter(i),this.id),e.addHandles(m,W)},async tearDown(t){const{viewModel:a}=n;if(t.canceled){const{pendingFeatures:t}=e;t.drain((e=>a.sketchViewModel.layer.remove(e))),e.removeHandles([this.id,W,T,x]),a.attachmentsViewModel.fileInfos.removeAll(),e._attachmentFileInfos.clear()}}}),"adding-attachment":()=>({id:"adding-attachment",parent:"creating-features",async setUp(){},async tearDown(){const{attachmentsViewModel:t}=n.viewModel,{graphic:a,fileInfos:i}=t;e._attachmentFileInfos.set(a,i.toArray()),t.mode="view"}}),"editing-attachment":()=>({id:"editing-attachment",parent:"creating-features",async setUp(){},async tearDown(){const{attachmentsViewModel:t}=n.viewModel,{graphic:a,fileInfos:i}=t;e._attachmentFileInfos.set(a,i.toArray()),t.mode="view"}})});return U(n,o)}static _configureSketchViewModel(e,t){const{data:i}=e,{viewModel:s}=i,{view:o}=s,l=s.sketchViewModel;let c=null;const u=[];if(!o)return{beforeCommit:r(),afterCommit:r()};const p=l.updateOnGraphicClick;return l.updateOnGraphicClick=!1,"2d"===o.type&&i.creationInfo&&u.push(e._fadeExistingFeatures(i.creationInfo.layer)),u.push(l.on("create",(async a=>{if("cancel"===a.state){if(e._preventDefaultActionOnCancel)return void(e._preventDefaultActionOnCancel=!1);if(e._lastActiveGraphics.length<1)return e._startCreating(t);const a=e._lastActiveGraphics.pop();return e._startUpdating(a,t)}if("complete"===a.state&&a.graphic)return e._startUpdating(a.graphic,t)})),l.on("update",(async a=>{const{viewModel:r}=i,{attachmentsViewModel:n,featureFormViewModel:s}=r,l=a.graphics[0];if("complete"===a.state){if(l!==c&&(e._lastActiveGraphics.push(l),e._highlight(l)),c=null,e.numPendingFeatures===i.creationInfo?.maxFeatures){const a=e._lastActiveGraphics.pop();return e._startUpdating(a,t)}if("add"!==n.mode&&"edit"!==n.mode||r.activeWorkflow?.previous(),a.aborted&&e._preventDefaultActionOnCancel)return void(e._preventDefaultActionOnCancel=!1);e.addHandles([D(o),o.on("click",(e=>e.preventDefault()))],T),await d((()=>!s.updating)),e.removeHandles(T),e._startCreating(t)}if("start"===a.state){e._removeHighlight(l),"add"!==n.mode&&"edit"!==n.mode||r.activeWorkflow?.previous(),n.fileInfos.removeAll(),n.graphic=l,n.mode="view";(e._attachmentFileInfos.get(l)||[]).forEach((({file:e,form:t})=>n.addFile(e,t)))}const u=e._visualVariableAttributes;await E(o,l,a,u,t);const p=l.attributes,{rotation:h,size:f}=u;if(null!=h){const{field:e}=h;s.setValue(e,p[e])}if(null!=f){const{field:e}=f;s.setValue(e,p[e])}})),l.on("delete",(async t=>{const i=t.graphics[0];e.pendingFeatures.remove(i),a(e._lastActiveGraphics,i),c=i})),o.on("immediate-click",(async a=>{if(M(i.creationInfo))return;const{results:r}=await o.hitTest(a,{include:l.layer}),n=r.find((e=>"graphic"===e.type));if(!n)return;const s=n.graphic;if("transform"===l.activeTool||"reshape"===l.activeTool){if(l.updateGraphics.at(0)===s)return;await e.updatePendingFeature(s,t)}})),r((()=>{e._preventDefaultActionOnCancel=!0,l.cancel()})),L(l,i)),{beforeCommit:n(u),afterCommit:r((()=>{l.updateOnGraphicClick=p}))}}};function L(e,t){let a=null;const i=()=>e.snappingOptions.featureSources,s=()=>(a=new v({layer:e.layer}),i().add(a),a),l=()=>{null!=a&&(i().remove(a),a=o(a))};return n([c((()=>{const e=t.creationInfo?.layer,a=i().find((t=>t.layer===e));return{hasFeatureLayerSource:!!a,enabled:a?.enabled??!1}}),(({hasFeatureLayerSource:e,enabled:t})=>{if(!e)return l();a??=s(),a.enabled=t}),u),r(l)])}function z(e,t,a,i){const r=[];return t.forEach(((t,n)=>{if(!t.error){const s=e[n],o=i.get(s)||[];s.attributes[a.objectIdField]=t.objectId,o.forEach((({form:e})=>r.push({feature:s,attachment:e})))}})),r}function N(e,t,a){const i=[],r=t.globalIdField;return e.forEach(((t,n)=>{e[n].attributes[r]??=p(),(a?.get(t)||[]).forEach((({file:e})=>i.push({feature:t,attachment:{globalId:p(),data:e}})))})),i.length?{addFeatures:e,addAttachments:i}:{addFeatures:e}}e([h()],R.prototype,"hasPendingEdits",null),e([h()],R.prototype,"_getDrawMeshHelpMessage",void 0),e([h()],R.prototype,"helpMessage",null),e([h()],R.prototype,"parent",null),e([h()],R.prototype,"keyboardCancellationEnabled",null),e([h()],R.prototype,"reliesOnOwnerAdminPrivileges",null),e([h()],R.prototype,"shouldShowAttachments",null),e([h()],R.prototype,"shouldAllowAttachmentEditing",null),R=O=e([f("esri.widgets.Editor.CreateFeaturesWorkflow")],R);const K=R;export{K 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 t}from"../../chunks/tslib.es6.js";import{createTask as e}from"../../core/asyncUtils.js";import a from"../../core/Collection.js";import{deprecated as r}from"../../core/deprecate.js";import i from"../../core/Error.js";import s from"../../core/Evented.js";import o from"../../core/Logger.js";import{abortMaybe as n}from"../../core/maybe.js";import{throwIfAborted as l}from"../../core/promiseUtils.js";import{watch as d,on as p,when as c,whenOnce as u,syncAndInitial as h,initial as w}from"../../core/reactiveUtils.js";import{property as f}from"../../core/accessorSupport/decorators/property.js";import"../../core/accessorSupport/ensureType.js";import"../../core/arrayUtils.js";import"../../core/has.js";import{subclass as m}from"../../core/accessorSupport/decorators/subclass.js";import{UpdatingHandles as y}from"../../core/support/UpdatingHandles.js";import k from"../../layers/GraphicsLayer.js";import{isEditableLayer as g}from"../../layers/support/editableLayers.js";import{isTable as v,getOwningPortalUrl as W,getEffectiveLayerCapabilities as b,isFeatureLayer as _}from"../../layers/support/layerUtils.js";import{parseKnownArcGISOnlineDomain as F}from"../../portal/support/urlUtils.js";import C from"../Attachments/AttachmentsViewModel.js";import E from"./CreateFeaturesWorkflow.js";import I from"./CreateWorkflow.js";import{workflowDeprecation as U}from"./deprecationUtils.js";import A from"./UpdateWorkflow.js";import{whenEditorLayerView as O}from"./workflowUtils.js";import{formTemplateHasInvalidFields as V}from"../FeatureForm/featureFormUtils.js";import j from"../FeatureForm/FeatureFormViewModel.js";import M from"../FeatureTemplates/FeatureTemplatesViewModel.js";import T from"../Sketch/SketchViewModel.js";import L from"../Spinner/SpinnerViewModel.js";import{unsupportedDateFieldTypes as S}from"../support/dateUtils.js";const P="esri.widgets.Editor.EditorViewModel",D=o.getLogger(P),G=["create","create-features","update"];function x(t,e,a){D.error(new i(t,e,a))}function H(t,e){return t?t.find((t=>t.layer===e)):void 0}let q=class extends s.EventedAccessor{constructor(t){super(t),this._editableItems=new a,this._sketchGraphicsLayer=new k({listMode:"hide",internal:!0}),this._updateEditableItemsTask=null,this._updatingHandles=new y,this.activeWorkflow=null,this._activityQueue=[],this.failures=[],this.hideTemplatesForInactiveLayers=!1,this.attachmentsViewModel=new C({capabilities:{editing:!0}}),this.featureFormViewModel=new j,this.featureTemplatesViewModel=new M({disabledItemFunction:({layer:t})=>this._itemIsSuspended(t)}),this.sketchViewModel=new T({layer:this._sketchGraphicsLayer}),this.spinnerViewModel=new L,this.pageStack=[],this.showDiscardEditsPrompt=()=>Promise.resolve(!0),this._candidateCommitted=!1,this.useDeprecatedCreateWorkflow=!1,this.back=async()=>{this.canGoBack&&(this.activeWorkflow?.hasPreviousStep?await this.activeWorkflow.back(this.showDiscardEditsPrompt):await this._cancelWorkflow({force:!this.hasPendingEdits}))},this.saveWorkflow=async()=>{const{featureFormViewModel:t}=this;if(t.submit(),!t.submittable)return;const e=t.getValues();t.validateContingencyConstraints(e,{includeIncompleteViolations:!0}).length>0||await(this.activeWorkflow?.save())},this.selectFeature=(t,e=!1)=>{const a=this.activeWorkflow;this._candidateCommitted||"update"!==a?.type||(a.data.rootFeature=t,e&&(a.next(),this._candidateCommitted=!0))}}initialize(){this.addHandles([d((()=>{const t=this.view?.map?.editableLayers.filter((({parent:t,visible:e})=>t&&"visible"in t?e&&t.visible:e)),e=this.view?.allLayerViews,a=e?.filter((e=>!!t?.includes(e.layer)&&!e.suspended));return[t,a,this.layerInfos,this.allowedWorkflows,this.hideTemplatesForInactiveLayers]}),(()=>this._updateEditableItems()),h),p((()=>this.activeWorkflow),"cancel",(()=>this.emit("workflow-cancel"))),p((()=>this.activeWorkflow),"commit",(()=>this.emit("workflow-commit"))),p((()=>this.activeWorkflow),"complete",(()=>{this.emit("workflow-commit"),this._set("activeWorkflow",null)})),c((()=>this.view?.map),(t=>t.add(this._sketchGraphicsLayer)),w),d((()=>this._editableItems.toArray()),(()=>{const{activeWorkflow:t}=this;if(this.syncFeatureTemplates(),!t)return;const{stepId:e}=t;"create"!==t.type?"update"===t.type&&("awaiting-feature-to-update"===e&&!this.canUpdate||"awaiting-update-feature-candidate"===e&&!t.data.candidates.some((t=>{const e=this._editableItems.find((e=>e.layer===t.layer));return e&&e.supports.includes("update")})))&&this._cancelWorkflow():"awaiting-feature-creation-info"!==e||this.canCreate||this._cancelWorkflow()})),d((()=>this.page),((t,e)=>{const a=[...this.pageStack];if(-1===a.indexOf(t))a.push(t);else for(;a.length&&a.at(-1)!==t;)a.pop();this.pageStack=a}),h),c((()=>"awaiting-update-feature-candidate"===this.state),(()=>this._candidateCommitted=!1)),p((()=>this.featureTemplatesViewModel),"select",(async({item:t,oldItem:e})=>{const{activeWorkflow:a}=this;if(a){if("update"===a.type&&"awaiting-feature-creation-info"===a.activeWorkflow?.stepId)return;try{await this.cancelWorkflow({force:!this.hasPendingEdits})}catch{return void this.featureTemplatesViewModel.select(e,{emit:!1})}}if(!t)return;const r={layer:t.layer,template:t.template};if(t.supportsUpload)return this.featureTemplatesViewModel.select(e,{emit:!1}),this.startCreateFeaturesWorkflow(r);this.useDeprecatedCreateWorkflow?this.startCreateWorkflowAtFeatureCreation(r):this.startCreateFeaturesWorkflowAtFeatureCreation(r)})),p((()=>this.view),"key-down",(t=>{"Escape"===t.key&&this.activeWorkflow?.keyboardCancellationEnabled&&this.back()}))])}destroy(){this._cancelWorkflow({warnIfNoWorkflow:!1}).then((()=>{this.view?.map?.remove(this._sketchGraphicsLayer),this.view=null})),this._updateEditableItemsTask=n(this._updateEditableItemsTask),this._updatingHandles.destroy()}get allowedWorkflows(){return this._get("allowedWorkflows")}set allowedWorkflows(t){t&&0!==t.length||(t=[...G]),this._set("allowedWorkflows",t)}get canCreate(){return this._editableItems.some((t=>t.supports.includes("create")&&!t.suspended))}get canUpdate(){return this._editableItems.some((({attachmentsOnUpdateEnabled:t,layer:e,supports:a,suspended:r})=>{const i=!r&&(a.includes("update")||a.includes("delete")||t),s=e.parent,o=!(s&&"visible"in s)||!!s.visible;return e.visible&&o&&i}))}get editableItems(){return this._editableItems}get labelOptions(){return this.sketchViewModel.labelOptions}set labelOptions(t){this.sketchViewModel.labelOptions=t}set layerInfos(t){t?.some((t=>("allowAttachments"in t&&r(D,"Property: layerInfo.allowAttachments",{replacement:"layerInfo.attachmentsOnCreateEnabled or layerInfo.attachmentsOnUpdateEnabled",version:"4.26"}),!0))),this._set("layerInfos",t)}get snappingOptions(){return this.sketchViewModel.snappingOptions}set snappingOptions(t){this.sketchViewModel.snappingOptions=t}get state(){if(!this.view?.ready)return"disabled";const t=this.attachmentsViewModel.mode;if("add"===t)return"adding-attachment";if("edit"===t)return"editing-attachment";const{activeWorkflow:e}=this;return e?"update"===e.type&&"awaiting-feature-creation-info"===e.activeWorkflow?.stepId?e.activeWorkflow.stepId:e.stepId:"ready"}get syncing(){return this._activityQueue.length>0}get updating(){return this._updatingHandles.updating||!0===this.activeWorkflow?.updating}get tooltipOptions(){return this.sketchViewModel.tooltipOptions}set tooltipOptions(t){this.sketchViewModel.tooltipOptions=t}set view(t){this.sketchViewModel.view=t,this.spinnerViewModel.view=t,this._set("view",t)}get page(){const{activeWorkflow:t,state:e}=this;if("update"===t?.type&&"awaiting-feature-to-update"===t.stepId)return"ready";if("create-features"===t?.type&&0===t.numPendingFeatures){const e=t.data.upload;if(e)return"default"===e.state?"ready":"creating-features-upload-details"}return e??"disabled"}get featureFormDisabled(){const{activeWorkflow:t}=this;return"update"===t?.type&&!1===t.activeEditableItem?.attributeUpdatesEnabled}get canGoBack(){return null!=this.activeWorkflow&&!this.syncing}get shouldShowDeleteButton(){const{activeWorkflow:t}=this;return!!t&&"update"===t.type&&!!t.activeEditableItem?.supports.includes("delete")}get hasPendingEdits(){return this.activeWorkflow?.hasPendingEdits??!1}async startCreateWorkflowAtFeatureTypeSelection(){if(U(D,"startCreateWorkflowAtFeatureTypeSelection","startCreateFeaturesWorkflowAtFeatureTypeSelection"),await u((()=>!this.updating)),!this.canCreate)return void x("editing:unsupported-workflow","Create workflow is unsupported or disabled.");await this._cancelWorkflow();const t=this._createCreateWorkflow();await t.start(),this._set("activeWorkflow",t)}async startCreateFeaturesWorkflowAtFeatureTypeSelection(){return this.startCreateFeaturesWorkflow()}async startCreateWorkflowAtFeatureCreation(t){if(U(D,"startCreateWorkflowAtFeatureCreation","startCreateFeaturesWorkflowAtFeatureCreation"),await u((()=>!this.updating)),!this.canCreate)return void x("editing:unsupported-workflow","Create workflow is unsupported or disabled.");await this._cancelWorkflow();const e=this._createCreateWorkflow("awaiting-feature-to-create");e.data.creationInfo=t,await e.start(),this._set("activeWorkflow",e)}async startCreateFeaturesWorkflowAtFeatureCreation(t){return this.startCreateFeaturesWorkflow(t,"creating-features")}async startCreateFeaturesWorkflow(t,e="awaiting-feature-creation-info"){if(await u((()=>!this.updating)),!this.canCreate)throw new i("editing:unsupported-workflow","Creating features is unsupported or disabled.");await this._cancelWorkflow();const a=this._createCreateFeaturesWorkflow(t,e);await a.start(),this._set("activeWorkflow",a)}async startCreateWorkflowAtFeatureEdit(t){if(U(D,"startCreateWorkflowAtFeatureEdit"),await u((()=>!this.updating)),!this.canCreate)return void x("editing:unsupported-workflow","Create workflow is unsupported or disabled.");await this._cancelWorkflow();const e=this._createCreateWorkflow("editing-new-feature");e.data.edits.feature=t,await e.start(),this._set("activeWorkflow",e)}async startCreateFeaturesWorkflowAtFeatureEdit(t){await u((()=>!this.updating));const{initialFeature:e}=t,a=e.sourceLayer,r=a?this.findEditableItemForLayer(a):void 0;if(!this.canCreate||!r)throw new i("editing:unsupported-workflow","Creating features is unsupported or disabled.");await this._cancelWorkflow();const s=this._createCreateFeaturesWorkflow({initialFeature:e,layer:r.layer,maxFeatures:1},"creating-features");await s.start(),this._set("activeWorkflow",s)}async startUpdateWorkflowAtFeatureSelection(){if(await u((()=>!this.updating)),!this.canUpdate)return void x("editing:unsupported-workflow","Update workflow is unsupported or disabled.");await this._cancelWorkflow();const t=this._createUpdateWorkflow();await t.start(),this._set("activeWorkflow",t)}async startUpdateWorkflowAtMultipleFeatureSelection(t){if(await u((()=>!this.updating)),!this.canUpdate)return void x("editing:unsupported-workflow","Update workflow is unsupported or disabled.");await this._cancelWorkflow();const e=this._createUpdateWorkflow("awaiting-update-feature-candidate");e.data.candidates=t,await e.start(),this._set("activeWorkflow",e)}async startUpdateWorkflowAtFeatureEdit(t){if(await u((()=>!this.updating)),!this.canUpdate)return void x("editing:unsupported-workflow","Update workflow is unsupported or disabled.");await this._cancelWorkflow();const e=this._createUpdateWorkflow("editing-existing-feature");e.data.rootFeature=t,await e.start(),this._set("activeWorkflow",e)}async deleteFeatureFromWorkflow(){const{activeWorkflow:t}=this;t&&"update"===t.type?await t.deleteActiveFeature():x("editing:unsupported-workflow","Deleting requires an active update workflow.")}async cancelWorkflow(t){return this._cancelWorkflow({warnIfNoWorkflow:!0,...t})}findEditableItemForLayer(t){const e="subtype-sublayer"===t.type?t.parent:t;return this._editableItems.find((t=>t.layer===e))}itemHasInvalidFormTemplate(t){return!!t&&(this.findEditableItemForLayer(t.layer)?.hasInvalidFormTemplate??!1)}itemHasUnsupportedFields(t){return!!t&&(this.findEditableItemForLayer(t.layer)?.hasUnsupportedFields??!1)}syncFeatureTemplates(){const t=[];for(const{layer:e,supports:a}of this._editableItems)e.loaded&&a.includes("create")&&!v(e)&&t.push(e);this.featureTemplatesViewModel.layers=t}async toggleUpdateWorkflow(){this.canUpdate&&(this.hasPendingEdits&&!await this.showDiscardEditsPrompt()||(this.activeWorkflow&&"awaiting-feature-to-update"===this.state?await this.cancelWorkflow({force:!0}):await this.startUpdateWorkflowAtFeatureSelection()))}async _updateEditableItems(){n(this._updateEditableItemsTask);const t=e((async t=>{const e=this.view?.allLayerViews,r=this.view?.map,i=r?.editableLayers.toArray()??[],s=r?.allTables.toArray().filter(_)??[];await Promise.all(s.map((t=>t.load())));const o=s.filter((t=>g(t))),n=[...i.reverse(),...o.reverse()].filter((t=>"mesh"!==t.geometryType||"3d"===this.view?.type));if(!e||!i)return;const d=[],p=[];for(const a of n){const r=e.find((t=>t.layer===a)),i=r?d:p,s=!!r?.suspended;if(!s||!this.hideTemplatesForInactiveLayers)if("subtype-group"===a.type){await a.loadAll(),l(t);for(let t=a.sublayers.length-1;t>=0;--t)i.push(this._makeEditableItemForLayer(a.sublayers.at(t),s))}else i.push(this._makeEditableItemForLayer(a,s))}if(t.aborted)return;const c=this._editableItems;this._editableItems=new a(d.concat(p)),c.destroy()}));this._updatingHandles.addPromise(t.promise),this._updateEditableItemsTask=t}async _cancelWorkflow(t){const e=this.activeWorkflow;if(!e)return void(t?.warnIfNoWorkflow&&x("editing:no-active-workflow","There is no active workflow to cancel."));if(!t||!1!==t.force)return this.emit("workflow-cancel"),this._set("activeWorkflow",null),void await e.cancel(t);await e.cancel(t),this._set("activeWorkflow",null)}_createCreateFeaturesWorkflow(t,e){return E.create({viewModel:this,creationInfo:t,startAt:e,applyEditsCallback:(t,e,a)=>this._applyEdits(t,e,a),addAttachmentsCallback:(t,e)=>this._addAttachments(t,e)})}_createCreateWorkflow(t){return I.create(this,t,((t,e,a)=>this._applyEdits(t,e,a)))}_createUpdateWorkflow(t){return A.create(this,t,((t,e)=>this._applyEdits(t,e)))}_addAttachments(t,e){const a=e.map((e=>this._addAttachment(t,e.feature,e.attachment)))??[];return Promise.all(a)}async _addAttachment(t,e,a){let r=null;if("geojson"===t.type||"scene"===t.type||"oriented-imagery"===t.type)throw new i("editor:attachments-not-supported","Adding attachments is not supported for this layer type");return await this._queueOperation((async()=>(r=await(t.addAttachment?.(e,a).catch((t=>{throw t?.error||t})))??null,r))),r}async _applyEdits(t,e,a){let r=null;const i=t.url?await W(t.url):null,s={returnServiceEditsOption:(!i||!F(i))&&!RegExp("/hosted/","i").test(t.url)?"original-and-current-features":void 0,...a};return await this._queueOperation((async()=>{const{view:a}=this;if(!a)return null;const i=await O(a,t).catch((()=>null));return r=await t.applyEdits(e,s),i&&await u((()=>!i.updating)),r})),r}_queueOperation(t){this._activityQueue.push(t),this.notifyChange("syncing");const e=(t,e)=>{const a=e.indexOf(t);a>-1&&e.splice(a,1)};return t().then((t=>{if(null!=t&&"error"in t&&null!=t.error)throw t.error;if(null!=t&&"addFeatureResults"in t){const{addFeatureResults:e,deleteFeatureResults:a,updateFeatureResults:r}=t,i=e.find((t=>!!t.error))||r.find((t=>!!t.error))||a.find((t=>!!t.error));if(i)throw i.error}return t})).catch((a=>{x("editing:operation-error","An error occurred.",{error:a});const r={error:a,retry:()=>(e(r,this.failures),this._queueOperation(t)),cancel:()=>{e(r,this.failures)}};this._set("failures",[...this.failures,r])})).then((()=>{e(t,this._activityQueue),this.notifyChange("syncing")}))}_makeEditableItemForLayer(t,e=!0){const a=b(t),r=a?.operations,i=H(this.layerInfos,t),s=V(t),o=t.fields.some((({type:t})=>S.has(t))),n=s||o||e,{allowedWorkflows:l}=this,d=l.includes("create")||l.includes("create-features"),p=l.includes("update"),c=t=>!i||!1!==i.enabled&&!1!==i[t],u=d&&!!r?.supportsAdd&&c("addEnabled"),h=p&&!!r?.supportsUpdate&&c("updateEnabled"),w=!n&&p&&!!r?.supportsDelete&&c("deleteEnabled"),f=[];u&&f.push("create"),h&&f.push("update"),w&&f.push("delete");const m=h&&!n&&(!i||!1!==i.attributeUpdatesEnabled),y=h&&!n&&!!a?.editing?.supportsGeometryUpdate&&(!i||!1!==i.geometryUpdatesEnabled),k=!(!a?.data?.supportsAttachment||i&&!1===i.allowAttachments);return{layer:t,supports:f,suspended:e,attributeUpdatesEnabled:m,geometryUpdatesEnabled:y,hasAttachments:k,attachmentsOnCreateEnabled:k&&d&&(!i||!1!==i.attachmentsOnCreateEnabled),attachmentsOnUpdateEnabled:!n&&k&&(!i||!1!==i.attachmentsOnUpdateEnabled),hasInvalidFormTemplate:s,hasUnsupportedFields:o}}_itemIsSuspended(t){return this.findEditableItemForLayer(t)?.suspended??!1}};t([f()],q.prototype,"_editableItems",void 0),t([f({readOnly:!0})],q.prototype,"activeWorkflow",void 0),t([f({readOnly:!0})],q.prototype,"_activityQueue",void 0),t([f({value:[...G]})],q.prototype,"allowedWorkflows",null),t([f({readOnly:!0})],q.prototype,"canCreate",null),t([f({readOnly:!0})],q.prototype,"canUpdate",null),t([f()],q.prototype,"editableItems",null),t([f({readOnly:!0})],q.prototype,"failures",void 0),t([f()],q.prototype,"hideTemplatesForInactiveLayers",void 0),t([f()],q.prototype,"attachmentsViewModel",void 0),t([f()],q.prototype,"featureFormViewModel",void 0),t([f()],q.prototype,"featureTemplatesViewModel",void 0),t([f()],q.prototype,"labelOptions",null),t([f()],q.prototype,"layerInfos",null),t([f()],q.prototype,"sketchViewModel",void 0),t([f()],q.prototype,"snappingOptions",null),t([f()],q.prototype,"spinnerViewModel",void 0),t([f()],q.prototype,"state",null),t([f({readOnly:!0})],q.prototype,"syncing",null),t([f()],q.prototype,"updating",null),t([f()],q.prototype,"tooltipOptions",null),t([f()],q.prototype,"view",null),t([f()],q.prototype,"pageStack",void 0),t([f()],q.prototype,"showDiscardEditsPrompt",void 0),t([f()],q.prototype,"_candidateCommitted",void 0),t([f()],q.prototype,"page",null),t([f()],q.prototype,"featureFormDisabled",null),t([f()],q.prototype,"canGoBack",null),t([f()],q.prototype,"shouldShowDeleteButton",null),t([f()],q.prototype,"hasPendingEdits",null),t([f()],q.prototype,"useDeprecatedCreateWorkflow",void 0),q=t([m(P)],q);const B=q;export{B as default};
|
|
5
|
+
import{_ as e}from"../../chunks/tslib.es6.js";import{createTask as t}from"../../core/asyncUtils.js";import a from"../../core/Collection.js";import{deprecated as r}from"../../core/deprecate.js";import i from"../../core/Error.js";import s from"../../core/Evented.js";import{makeHandle as o}from"../../core/handleUtils.js";import n from"../../core/Logger.js";import{abortMaybe as l}from"../../core/maybe.js";import{throwIfAborted as d}from"../../core/promiseUtils.js";import{watch as p,on as c,when as u,whenOnce as h,syncAndInitial as w,initial as f}from"../../core/reactiveUtils.js";import{property as m}from"../../core/accessorSupport/decorators/property.js";import"../../core/accessorSupport/ensureType.js";import"../../core/arrayUtils.js";import"../../core/has.js";import{subclass as y}from"../../core/accessorSupport/decorators/subclass.js";import{UpdatingHandles as k}from"../../core/support/UpdatingHandles.js";import g from"../../layers/GraphicsLayer.js";import{isEditableLayer as v}from"../../layers/support/editableLayers.js";import{isTable as W,getOwningPortalUrl as _,getEffectiveLayerCapabilities as b,isFeatureLayer as F}from"../../layers/support/layerUtils.js";import{parseKnownArcGISOnlineDomain as C}from"../../portal/support/urlUtils.js";import E from"../Attachments/AttachmentsViewModel.js";import I from"./CreateFeaturesWorkflow.js";import U from"./CreateWorkflow.js";import{workflowDeprecation as A}from"./deprecationUtils.js";import T from"./UpdateWorkflow.js";import{whenEditorLayerView as O}from"./workflowUtils.js";import{formTemplateHasInvalidFields as V}from"../FeatureForm/featureFormUtils.js";import M from"../FeatureForm/FeatureFormViewModel.js";import j from"../FeatureTemplates/FeatureTemplatesViewModel.js";import L from"../Sketch/SketchViewModel.js";import S from"../Spinner/SpinnerViewModel.js";import{unsupportedDateFieldTypes as P}from"../support/dateUtils.js";const D="esri.widgets.Editor.EditorViewModel",x=n.getLogger(D),G=["create","create-features","update"];function H(e,t,a){x.error(new i(e,t,a))}function N(e,t){return e?e.find((e=>e.layer===t)):void 0}let q=class extends s.EventedAccessor{constructor(e){super(e),this._editableItems=new a,this._sketchGraphicsLayer=new g({listMode:"hide",internal:!0}),this._updateEditableItemsTask=null,this._updatingHandles=new k,this._featureTemplatesViewModelLocked=!1,this._syncFeatureTemplatesOnNextUnlock=!1,this.activeWorkflow=null,this._activityQueue=[],this.failures=[],this.hideTemplatesForInactiveLayers=!1,this.attachmentsViewModel=new E({capabilities:{editing:!0}}),this.featureFormViewModel=new M,this.featureTemplatesViewModel=new j({disabledItemFunction:({layer:e})=>this._itemIsSuspended(e)}),this.sketchViewModel=new L({layer:this._sketchGraphicsLayer}),this.spinnerViewModel=new S,this.pageStack=[],this.showDiscardEditsPrompt=()=>Promise.resolve(!0),this._candidateCommitted=!1,this.useDeprecatedCreateWorkflow=!1,this.back=async()=>{this.canGoBack&&(this.activeWorkflow?.hasPreviousStep?await this.activeWorkflow.back(this.showDiscardEditsPrompt):await this._cancelWorkflow({force:!this.hasPendingEdits}))},this.saveWorkflow=async()=>{const{featureFormViewModel:e}=this;if(e.submit(),!e.submittable)return;const t=e.getValues();e.validateContingencyConstraints(t,{includeIncompleteViolations:!0}).length>0||await(this.activeWorkflow?.save())},this.selectFeature=(e,t=!1)=>{const a=this.activeWorkflow;this._candidateCommitted||"update"!==a?.type||(a.data.rootFeature=e,t&&(a.next(),this._candidateCommitted=!0))}}initialize(){this.addHandles([p((()=>{const e=this.view?.map?.editableLayers.filter((({parent:e,visible:t})=>e&&"visible"in e?t&&e.visible:t)),t=this.view?.allLayerViews,a=t?.filter((t=>!!e?.includes(t.layer)&&!t.suspended));return[e,a,this.layerInfos,this.allowedWorkflows,this.hideTemplatesForInactiveLayers]}),(()=>this._updateEditableItems()),w),c((()=>this.activeWorkflow),"cancel",(()=>this.emit("workflow-cancel"))),c((()=>this.activeWorkflow),"commit",(()=>this.emit("workflow-commit"))),c((()=>this.activeWorkflow),"complete",(()=>{this.emit("workflow-commit"),this._set("activeWorkflow",null)})),u((()=>this.view?.map),(e=>e.add(this._sketchGraphicsLayer)),f),p((()=>this._editableItems.toArray()),(()=>{const{activeWorkflow:e}=this;if(this.syncFeatureTemplates(),!e)return;const{stepId:t}=e;"create"!==e.type?"update"===e.type&&("awaiting-feature-to-update"===t&&!this.canUpdate||"awaiting-update-feature-candidate"===t&&!e.data.candidates.some((e=>{const t=this._editableItems.find((t=>t.layer===e.layer));return t&&t.supports.includes("update")})))&&this._cancelWorkflow():"awaiting-feature-creation-info"!==t||this.canCreate||this._cancelWorkflow()})),p((()=>this.page),((e,t)=>{const a=[...this.pageStack];if(-1===a.indexOf(e))a.push(e);else for(;a.length&&a.at(-1)!==e;)a.pop();this.pageStack=a}),w),u((()=>"awaiting-update-feature-candidate"===this.state),(()=>this._candidateCommitted=!1)),c((()=>this.featureTemplatesViewModel),"select",(async({item:e,oldItem:t})=>{const{activeWorkflow:a}=this;if(a){if("update"===a.type&&"awaiting-feature-creation-info"===a.activeWorkflow?.stepId)return;try{await this.cancelWorkflow({force:!this.hasPendingEdits})}catch{return void this.featureTemplatesViewModel.select(t,{emit:!1})}}if(!e)return;const r={layer:e.layer,template:e.template};if(e.supportsUpload)return this.featureTemplatesViewModel.select(t,{emit:!1}),this.startCreateFeaturesWorkflow(r);this.useDeprecatedCreateWorkflow?this.startCreateWorkflowAtFeatureCreation(r):this.startCreateFeaturesWorkflowAtFeatureCreation(r)})),c((()=>this.view),"key-down",(e=>{"Escape"===e.key&&this.activeWorkflow?.keyboardCancellationEnabled&&this.back()}))])}destroy(){this._cancelWorkflow({warnIfNoWorkflow:!1}).then((()=>{this.view?.map?.remove(this._sketchGraphicsLayer),this.view=null})),this._updateEditableItemsTask=l(this._updateEditableItemsTask),this._updatingHandles.destroy()}get allowedWorkflows(){return this._get("allowedWorkflows")}set allowedWorkflows(e){e&&0!==e.length||(e=[...G]),this._set("allowedWorkflows",e)}get canCreate(){return this._editableItems.some((e=>e.supports.includes("create")&&!e.suspended))}get canUpdate(){return this._editableItems.some((({attachmentsOnUpdateEnabled:e,layer:t,supports:a,suspended:r})=>{const i=!r&&(a.includes("update")||a.includes("delete")||e),s=t.parent,o=!(s&&"visible"in s)||!!s.visible;return t.visible&&o&&i}))}get editableItems(){return this._editableItems}get labelOptions(){return this.sketchViewModel.labelOptions}set labelOptions(e){this.sketchViewModel.labelOptions=e}set layerInfos(e){e?.some((e=>("allowAttachments"in e&&r(x,"Property: layerInfo.allowAttachments",{replacement:"layerInfo.attachmentsOnCreateEnabled or layerInfo.attachmentsOnUpdateEnabled",version:"4.26"}),!0))),this._set("layerInfos",e)}get snappingOptions(){return this.sketchViewModel.snappingOptions}set snappingOptions(e){this.sketchViewModel.snappingOptions=e}get state(){if(!this.view?.ready)return"disabled";const e=this.attachmentsViewModel.mode;if("add"===e)return"adding-attachment";if("edit"===e)return"editing-attachment";const{activeWorkflow:t}=this;return t?"update"===t.type&&t.activeWorkflow?.stepId?t.activeWorkflow.stepId:t.stepId:"ready"}get syncing(){return this._activityQueue.length>0}get updating(){return this._updatingHandles.updating||!0===this.activeWorkflow?.updating}get tooltipOptions(){return this.sketchViewModel.tooltipOptions}set tooltipOptions(e){this.sketchViewModel.tooltipOptions=e}set view(e){this.sketchViewModel.view=e,this.spinnerViewModel.view=e,this._set("view",e)}get page(){const{activeWorkflow:e,state:t}=this;if("update"===e?.type&&"awaiting-feature-to-update"===e.stepId)return"ready";if("create-features"===e?.type&&0===e.numPendingFeatures){const t=e.data.upload;if(t)return"default"===t.state?"ready":"creating-features-upload-details"}return t??"disabled"}get featureFormDisabled(){const{activeWorkflow:e}=this;return"update"===e?.type&&!1===e.activeEditableItem?.attributeUpdatesEnabled}get canGoBack(){return null!=this.activeWorkflow&&!this.syncing}get shouldShowDeleteButton(){const{activeWorkflow:e}=this;return!!e&&"update"===e.type&&!!e.activeEditableItem?.supports.includes("delete")}get hasPendingEdits(){return this.activeWorkflow?.hasPendingEdits??!1}async startCreateWorkflowAtFeatureTypeSelection(){if(A(x,"startCreateWorkflowAtFeatureTypeSelection","startCreateFeaturesWorkflowAtFeatureTypeSelection"),await h((()=>!this.updating)),!this.canCreate)return void H("editing:unsupported-workflow","Create workflow is unsupported or disabled.");await this._cancelWorkflow();const e=this._createCreateWorkflow();await e.start(),this._set("activeWorkflow",e)}async startCreateFeaturesWorkflowAtFeatureTypeSelection(){return this.startCreateFeaturesWorkflow()}async startCreateWorkflowAtFeatureCreation(e){if(A(x,"startCreateWorkflowAtFeatureCreation","startCreateFeaturesWorkflowAtFeatureCreation"),await h((()=>!this.updating)),!this.canCreate)return void H("editing:unsupported-workflow","Create workflow is unsupported or disabled.");await this._cancelWorkflow();const t=this._createCreateWorkflow("awaiting-feature-to-create");t.data.creationInfo=e,await t.start(),this._set("activeWorkflow",t)}async startCreateFeaturesWorkflowAtFeatureCreation(e){return this.startCreateFeaturesWorkflow(e,"creating-features")}async startCreateFeaturesWorkflow(e,t="awaiting-feature-creation-info"){if(await h((()=>!this.updating)),!this.canCreate)throw new i("editing:unsupported-workflow","Creating features is unsupported or disabled.");await this._cancelWorkflow();const a=this._createCreateFeaturesWorkflow(e,t);await a.start(),this._set("activeWorkflow",a)}async startCreateWorkflowAtFeatureEdit(e){if(A(x,"startCreateWorkflowAtFeatureEdit"),await h((()=>!this.updating)),!this.canCreate)return void H("editing:unsupported-workflow","Create workflow is unsupported or disabled.");await this._cancelWorkflow();const t=this._createCreateWorkflow("editing-new-feature");t.data.edits.feature=e,await t.start(),this._set("activeWorkflow",t)}async startCreateFeaturesWorkflowAtFeatureEdit(e){await h((()=>!this.updating));const{initialFeature:t}=e,a=t.sourceLayer,r=a?this.findEditableItemForLayer(a):void 0;if(!this.canCreate||!r)throw new i("editing:unsupported-workflow","Creating features is unsupported or disabled.");await this._cancelWorkflow();const s=this._createCreateFeaturesWorkflow({initialFeature:t,layer:r.layer,maxFeatures:1},"creating-features");await s.start(),this._set("activeWorkflow",s)}async startUpdateWorkflowAtFeatureSelection(){if(await h((()=>!this.updating)),!this.canUpdate)return void H("editing:unsupported-workflow","Update workflow is unsupported or disabled.");await this._cancelWorkflow();const e=this._createUpdateWorkflow();await e.start(),this._set("activeWorkflow",e)}async startUpdateWorkflowAtMultipleFeatureSelection(e){if(await h((()=>!this.updating)),!this.canUpdate)return void H("editing:unsupported-workflow","Update workflow is unsupported or disabled.");await this._cancelWorkflow();const t=this._createUpdateWorkflow("awaiting-update-feature-candidate");t.data.candidates=e,await t.start(),this._set("activeWorkflow",t)}async startUpdateWorkflowAtFeatureEdit(e){if(await h((()=>!this.updating)),!this.canUpdate)return void H("editing:unsupported-workflow","Update workflow is unsupported or disabled.");await this._cancelWorkflow();const t=this._createUpdateWorkflow("editing-existing-feature");t.data.rootFeature=e,await t.start(),this._set("activeWorkflow",t)}async deleteFeatureFromWorkflow(){const{activeWorkflow:e}=this;e&&"update"===e.type?await e.deleteActiveFeature():H("editing:unsupported-workflow","Deleting requires an active update workflow.")}async cancelWorkflow(e){return this._cancelWorkflow({warnIfNoWorkflow:!0,...e})}findEditableItemForLayer(e){const t="subtype-sublayer"===e.type?e.parent:e;return this._editableItems.find((e=>e.layer===t))}itemHasInvalidFormTemplate(e){return!!e&&(this.findEditableItemForLayer(e.layer)?.hasInvalidFormTemplate??!1)}itemHasUnsupportedFields(e){return!!e&&(this.findEditableItemForLayer(e.layer)?.hasUnsupportedFields??!1)}syncFeatureTemplates(){if(this._featureTemplatesViewModelLocked)return void(this._syncFeatureTemplatesOnNextUnlock=!0);const e=[];for(const{layer:t,supports:a}of this._editableItems)t.loaded&&a.includes("create")&&!W(t)&&e.push(t);this.featureTemplatesViewModel.layers=e}async toggleUpdateWorkflow(){this.canUpdate&&(this.hasPendingEdits&&!await this.showDiscardEditsPrompt()||(this.activeWorkflow&&"awaiting-feature-to-update"===this.state?await this.cancelWorkflow({force:!0}):await this.startUpdateWorkflowAtFeatureSelection()))}lockFeatureTemplatesViewModel(){return this._featureTemplatesViewModelLocked=!0,o((()=>{this._featureTemplatesViewModelLocked=!1,this._syncFeatureTemplatesOnNextUnlock&&(this.syncFeatureTemplates(),this._syncFeatureTemplatesOnNextUnlock=!1)}))}async _updateEditableItems(){l(this._updateEditableItemsTask);const e=t((async e=>{const t=this.view?.allLayerViews,r=this.view?.map,i=r?.editableLayers.toArray()??[],s=r?.allTables.toArray().filter(F)??[];await Promise.all(s.map((e=>e.load())));const o=s.filter((e=>v(e))),n=[...i.reverse(),...o.reverse()].filter((e=>"mesh"!==e.geometryType||"3d"===this.view?.type));if(!t||!i)return;const l=[],p=[];for(const a of n){const r=t.find((e=>e.layer===a)),i=r?l:p,s=!!r?.suspended;if(!s||!this.hideTemplatesForInactiveLayers)if("subtype-group"===a.type){await a.loadAll(),d(e);for(let e=a.sublayers.length-1;e>=0;--e)i.push(this._makeEditableItemForLayer(a.sublayers.at(e),s))}else i.push(this._makeEditableItemForLayer(a,s))}if(e.aborted)return;const c=this._editableItems;this._editableItems=new a(l.concat(p)),c.destroy()}));this._updatingHandles.addPromise(e.promise),this._updateEditableItemsTask=e}async _cancelWorkflow(e){const t=this.activeWorkflow;if(!t)return void(e?.warnIfNoWorkflow&&H("editing:no-active-workflow","There is no active workflow to cancel."));if(!e||!1!==e.force)return this.emit("workflow-cancel"),this._set("activeWorkflow",null),void await t.cancel(e);await t.cancel(e),this._set("activeWorkflow",null)}_createCreateFeaturesWorkflow(e,t){return I.create({viewModel:this,creationInfo:e,startAt:t,applyEditsCallback:(e,t,a)=>this._applyEdits(e,t,a),addAttachmentsCallback:(e,t)=>this._addAttachments(e,t)})}_createCreateWorkflow(e){return U.create(this,e,((e,t,a)=>this._applyEdits(e,t,a)))}_createUpdateWorkflow(e){return T.create(this,e,((e,t)=>this._applyEdits(e,t)))}_addAttachments(e,t){const a=t.map((t=>this._addAttachment(e,t.feature,t.attachment)))??[];return Promise.all(a)}async _addAttachment(e,t,a){let r=null;if("geojson"===e.type||"scene"===e.type||"oriented-imagery"===e.type)throw new i("editor:attachments-not-supported","Adding attachments is not supported for this layer type");return await this._queueOperation((async()=>(r=await(e.addAttachment?.(t,a).catch((e=>{throw e?.error||e})))??null,r))),r}async _applyEdits(e,t,a){let r=null;const i=e.url?await _(e.url):null,s={returnServiceEditsOption:(!i||!C(i))&&!RegExp("/hosted/","i").test(e.url)?"original-and-current-features":void 0,...a};return await this._queueOperation((async()=>{const{view:a}=this;if(!a)return null;const i=await O(a,e).catch((()=>null));return r=await e.applyEdits(t,s),i&&await h((()=>!i.updating)),r})),r}_queueOperation(e){this._activityQueue.push(e),this.notifyChange("syncing");const t=(e,t)=>{const a=t.indexOf(e);a>-1&&t.splice(a,1)};return e().then((e=>{if(null!=e&&"error"in e&&null!=e.error)throw e.error;if(null!=e&&"addFeatureResults"in e){const{addFeatureResults:t,deleteFeatureResults:a,updateFeatureResults:r}=e,i=t.find((e=>!!e.error))||r.find((e=>!!e.error))||a.find((e=>!!e.error));if(i)throw i.error}return e})).catch((a=>{H("editing:operation-error","An error occurred.",{error:a});const r={error:a,retry:()=>(t(r,this.failures),this._queueOperation(e)),cancel:()=>{t(r,this.failures)}};this._set("failures",[...this.failures,r])})).then((()=>{t(e,this._activityQueue),this.notifyChange("syncing")}))}_makeEditableItemForLayer(e,t=!0){const a=b(e),r=a?.operations,i=N(this.layerInfos,e),s=V(e),o=e.fields.some((({type:e})=>P.has(e))),n=s||o||t,{allowedWorkflows:l}=this,d=l.includes("create")||l.includes("create-features"),p=l.includes("update"),c=e=>!i||!1!==i.enabled&&!1!==i[e],u=d&&!!r?.supportsAdd&&c("addEnabled"),h=p&&!!r?.supportsUpdate&&c("updateEnabled"),w=!n&&p&&!!r?.supportsDelete&&c("deleteEnabled"),f=[];u&&f.push("create"),h&&f.push("update"),w&&f.push("delete");const m=h&&!n&&(!i||!1!==i.attributeUpdatesEnabled),y=h&&!n&&!!a?.editing?.supportsGeometryUpdate&&(!i||!1!==i.geometryUpdatesEnabled),k=!(!a?.data?.supportsAttachment||i&&!1===i.allowAttachments);return{layer:e,supports:f,suspended:t,attributeUpdatesEnabled:m,geometryUpdatesEnabled:y,hasAttachments:k,attachmentsOnCreateEnabled:k&&d&&(!i||!1!==i.attachmentsOnCreateEnabled),attachmentsOnUpdateEnabled:!n&&k&&(!i||!1!==i.attachmentsOnUpdateEnabled),hasInvalidFormTemplate:s,hasUnsupportedFields:o}}_itemIsSuspended(e){return this.findEditableItemForLayer(e)?.suspended??!1}};e([m()],q.prototype,"_editableItems",void 0),e([m({readOnly:!0})],q.prototype,"activeWorkflow",void 0),e([m({readOnly:!0})],q.prototype,"_activityQueue",void 0),e([m({value:[...G]})],q.prototype,"allowedWorkflows",null),e([m({readOnly:!0})],q.prototype,"canCreate",null),e([m({readOnly:!0})],q.prototype,"canUpdate",null),e([m()],q.prototype,"editableItems",null),e([m({readOnly:!0})],q.prototype,"failures",void 0),e([m()],q.prototype,"hideTemplatesForInactiveLayers",void 0),e([m()],q.prototype,"attachmentsViewModel",void 0),e([m()],q.prototype,"featureFormViewModel",void 0),e([m()],q.prototype,"featureTemplatesViewModel",void 0),e([m()],q.prototype,"labelOptions",null),e([m()],q.prototype,"layerInfos",null),e([m()],q.prototype,"sketchViewModel",void 0),e([m()],q.prototype,"snappingOptions",null),e([m()],q.prototype,"spinnerViewModel",void 0),e([m()],q.prototype,"state",null),e([m({readOnly:!0})],q.prototype,"syncing",null),e([m()],q.prototype,"updating",null),e([m()],q.prototype,"tooltipOptions",null),e([m()],q.prototype,"view",null),e([m()],q.prototype,"pageStack",void 0),e([m()],q.prototype,"showDiscardEditsPrompt",void 0),e([m()],q.prototype,"_candidateCommitted",void 0),e([m()],q.prototype,"page",null),e([m()],q.prototype,"featureFormDisabled",null),e([m()],q.prototype,"canGoBack",null),e([m()],q.prototype,"shouldShowDeleteButton",null),e([m()],q.prototype,"hasPendingEdits",null),e([m()],q.prototype,"useDeprecatedCreateWorkflow",void 0),q=e([y(D)],q);const B=q;export{B 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 t from"../../core/Error.js";import{abortHandle as r}from"../../core/handleUtils.js";import{isAborted as
|
|
5
|
+
import{_ as e}from"../../chunks/tslib.es6.js";import t from"../../core/Error.js";import{abortHandle as i,makeHandle as r}from"../../core/handleUtils.js";import{isAborted as a}from"../../core/promiseUtils.js";import{watch as s}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 l}from"../../core/accessorSupport/decorators/subclass.js";import{getEffectiveLayerCapabilities as n,getEffectiveEditingEnabled as d}from"../../layers/support/layerUtils.js";import{sceneLayerEditingEnabled as u,i3sPatchingEnabled as c}from"../../support/featureFlags.js";import p from"../../views/draw/support/HighlightHelper.js";import m from"./UpdateRecordWorkflowData.js";import h from"./Workflow.js";import{fetchFullFeature as f}from"./workflowUtils.js";var g;const w={exit:Symbol()},y="esri.widgets.Editor.UpdateRecordWorkflow";let b=g=class extends h{constructor(e){super(e),this._highlightHelper=null,this.fullFeature=null,this.type="update-table-record"}initialize(){const{data:e}=this,{edits:s}=e,{view:o}=e.viewModel,l=s.feature,n=new AbortController;this.addHandles(i(n)),this._updatingHandles.addPromise(f(l,e.viewModel.view.spatialReference,n.signal).then((e=>{a(n)||this._onFullFeatureLoaded(e)}),(e=>this.cancel({force:!0,error:new t("editor:failed-to-fetch-full-feature","Failed to retrieve all information for this feature. The update cannot proceed.",{detail:{error:e}})})))),o&&(this._highlightHelper=new p({view:o}),this.addHandles(r((()=>this._highlightHelper?.removeAll()))))}get editableItem(){return this.data.editableItem}get hasPendingEdits(){const{edits:e,viewModel:t}=this.data,{geometryModified:i,initialFeature:r,modified:a}=e;if(i)return!0;if(!a||!r)return!1;const{allFieldInputs:s}=t.featureFormViewModel;return s.some((e=>F(e,r)))}get parent(){return this.data.parent}get shouldShowAttachments(){return this.editableItem.attachmentsOnUpdateEnabled}get shouldAllowAttachmentEditing(){return this.editableItem.supports.includes("update")}get reliesOnOwnerAdminPrivileges(){const{layer:e}=this.editableItem,t=e.capabilities?.operations.supportsUpdate,i=n(e)?.operations.supportsUpdate;return d(e)&&!e.editingEnabled||!!i&&!t}async deleteAndCommit(){return this.data.edits.stageDelete(),this.commit()}async enter(){this._configureAttachmentsViewModel(),this._configureFeatureFormViewModel()}exit(e){this.removeHandles(w.exit)}_configureAttachmentsViewModel(){const{data:e,fullFeature:t}=this,{attachmentsCapabilities:i,viewModel:r}=e,{attachmentsViewModel:a}=r;a.set({capabilities:i,graphic:t,filesEnabled:!1,mode:"view"}),this.addHandles(s((()=>a.mode),(e=>{switch(e){case"add":this.go("adding-attachment");break;case"edit":this.go("editing-attachment")}})),w.exit)}_configureFeatureFormViewModel(){const{edits:e,formTemplate:t,viewModel:{featureFormViewModel:i,view:r}}=this.data;i.set({arcadeEditType:"UPDATE",feature:this.fullFeature,formTemplate:t,highlightHelper:this._highlightHelper,map:r?.map,spatialReference:r.spatialReference});const{initialFeature:a}=e;a&&i.overrideInitialFeature(a),this.addHandles(i.on("value-change",(()=>{e.updateAttributes(i.getValues()),this.fullFeature.attributes=e.feature.attributes})),w.exit)}_onFullFeatureLoaded(e){this.fullFeature=e;const{edits:t}=this.data;t.updateAttributes(e.attributes),t.trackChanges()}static async create(e){const t=new g({data:await m.create(e),onCommit:this._onCommitFactory(e.applyEdits)});return t._set("steps",this._createWorkflowSteps(t)),t}static _createWorkflowSteps(e){const{attachmentsViewModel:t}=e.data.viewModel;return[{id:"editing-attributes",async setUp(){},async tearDown(){}},{id:"adding-attachment",async setUp(){},async tearDown(){t.mode="view"}},{id:"editing-attachment",async setUp(){},async tearDown(){t.mode="view"}}]}};function F(e,t){return e.value!==t.getAttribute(e.name)&&!e.valueOriginIsExpression}b._onCommitFactory=e=>async t=>{const{edits:i}=t,{feature:r}=i;if(!r)return;const a=r.sourceLayer,s=r.clone();if(!i.attributesModified||i.stagedForDelete){const e=a.objectIdField;if(s.attributes={[e]:r.getAttribute(e)},u()&&c()&&"scene"===a.type&&null!=a.infoFor3D){const e=a.associatedLayer?.globalIdField;null!=e&&s.setAttribute(e,r.getAttribute(e))}}i.geometryModified&&!i.stagedForDelete||(s.geometry=null);const o=i.stagedForDelete?"deleteFeatures":"updateFeatures";await e(a,{[o]:[s]})},e([o()],b.prototype,"editableItem",null),e([o()],b.prototype,"fullFeature",void 0),e([o()],b.prototype,"hasPendingEdits",null),e([o()],b.prototype,"parent",null),e([o()],b.prototype,"shouldShowAttachments",null),e([o()],b.prototype,"shouldAllowAttachmentEditing",null),e([o()],b.prototype,"reliesOnOwnerAdminPrivileges",null),b=g=e([l(y)],b);export{b as UpdateRecordWorkflow,w as handleKeys};
|
|
@@ -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"../../Graphic.js";import a from"../../core/Error.js";import{makeHandle as o}from"../../core/handleUtils.js";import i from"../../core/Logger.js";import{abortMaybe as r}from"../../core/maybe.js";import{onAbort as s,createAbortError as n,throwIfAborted as l,debounce as d}from"../../core/promiseUtils.js";import c from"../../core/Queue.js";import{whenOnce as p,watch as u,sync as w}from"../../core/reactiveUtils.js";import{property as h}from"../../core/accessorSupport/decorators/property.js";import"../../core/accessorSupport/ensureType.js";import"../../core/arrayUtils.js";import"../../core/has.js";import{subclass as f}from"../../core/accessorSupport/decorators/subclass.js";import{isEditableLayer as m}from"../../layers/support/editableLayers.js";import{isSubtypeGroupLayer as g,isTable as k}from"../../layers/support/layerUtils.js";import{highlightsSupported as v}from"../../views/support/layerViewUtils.js";import y from"./CreateFeaturesWorkflow.js";import{UpdateFeatureWorkflow as b}from"./UpdateFeatureWorkflow.js";import{UpdateRecordWorkflow as W}from"./UpdateRecordWorkflow.js";import C from"./UpdateWorkflowData.js";import _ from"./Workflow.js";import{createWorkflowSteps as F,fetchCandidates as S}from"./workflowUtils.js";import{isGraphicForRelatableFeatureSupportedLayer as M}from"../Feature/support/featureUtils.js";import{getAllTemplatesForLayer as U}from"../support/templateUtils.js";var I;const j="candidate-highlight",A="esri.widgets.Editor.UpdateWorkflow",E=i.getLogger(A);let R=I=class extends _{constructor(e){super(e),this._workflowStack=new c((e=>{let t;for(t of e);return t})),this.type="update"}get activeEditableItem(){const{activeWorkflow:e}=this;return x(e)?e.data.editableItem:void 0}get activeWorkflow(){return this._workflowStack.last()}get nestedWorkflowCount(){return this._workflowStack.length}get shouldShowAttachments(){return!!this.activeEditableItem?.attachmentsOnUpdateEnabled}get shouldAllowAttachmentEditing(){return!!this.activeEditableItem?.supports.includes("update")}get hasPendingEdits(){return Array.from(this._workflowStack).some((e=>e.hasPendingEdits))}get helpMessage(){return"awaiting-feature-to-update"===this.stepId?"select":void 0}get reliesOnOwnerAdminPrivileges(){return this.activeWorkflow?.reliesOnOwnerAdminPrivileges??!1}get hasInvalidFormTemplate(){return!!this.activeEditableItem?.hasInvalidFormTemplate}get hasUnsupportedFields(){return!!this.activeEditableItem?.hasUnsupportedFields}async back(e=(()=>Promise.resolve(!0))){const{featureFormViewModel:t}=this.data.viewModel;if(null==t.relationshipId)if(this.activeWorkflow){if(this.activeWorkflow.hasPendingEdits){if(!await e())return}this.activeWorkflow.hasPreviousStep?await this.activeWorkflow.previous({cancelCurrentStep:!0}):await this.cancelActiveWorkflow({force:!0})}else this.hasPreviousStep?await this.previous({cancelCurrentStep:!0}):await this.cancel({force:!0});else t.relationshipId=null}async cancelActiveWorkflow(e){await(this.activeWorkflow?.cancel(e)),await this._popWorkflow()}async commit(){await this._drainWorkflowStack((e=>e.commit())),await super.commit()}static create(e,t,a){const o=new I({data:new C({applyEditsCallback:a,viewModel:e}),onCommit:async()=>{}});return o._set("steps",this._createWorkflowSteps(o,t)),o}async save(){this.nestedWorkflowCount>1?(await(this.activeWorkflow?.commit()),await this._popWorkflow()):await this.commit()}async startCreatingRelatedRecord(e){try{const t=await this._createNestedCreateFeaturesWorkflow(e);await this._pushWorkflow(t)}catch(t){throw new a("editor:unable-to-start-creating","Could not begin updating the provided feature or table record.",{error:t})}}async startUpdating(e){try{const t=await this._createNestedUpdateWorkflow(e);await this._pushWorkflow(t)}catch(t){throw new a("editor:unable-to-start-updating","Could not begin updating the provided feature or table record.",{error:t})}}async deleteActiveFeature(){const{activeWorkflow:e}=this;if(!e)throw new a("editor:nothing-to-delete","There is no feature to delete");x(e)?await e.deleteAndCommit():await e.cancel(),1===this.nestedWorkflowCount?await this.reset():await this._popWorkflow()}async cancelAll(){await this._drainWorkflowStack((e=>e.cancel({force:!0})))}async _createNestedCreateFeaturesWorkflow(e){const{relatedLayer:t}=e,{addAttachmentsCallback:o,applyEditsCallback:i,viewModel:r}=this.data;if(!m(t))throw new a("editor:unsupported-layer","Editing is not supported on the provided layer");const s=this._getCreationInfoForNestedCreateFeaturesWorkflow(e),n=s.initialFeature?"creating-features":"awaiting-feature-creation-info",l="create-features"!==this.activeWorkflow?.type?this.activeWorkflow:void 0;return y.create({addAttachmentsCallback:o,applyEditsCallback:i,creationInfo:s,parent:l,startAt:n,viewModel:r})}_getCreationInfoForNestedCreateFeaturesWorkflow(e){const{relatedLayer:o}=e;if(!m(o)||g(o))throw new a("editor:unsupported-layer","Editing is not supported on the provided layer");const i={layer:o,maxFeatures:1},r=this._makeRelatedRecordAttributes(e),s=U(o);return s?.length?s.length>1?i.attributeOverrides=r:i.initialFeature=new t({sourceLayer:o,attributes:{...s[0].prototype.attributes,...r}}):i.initialFeature=new t({sourceLayer:o,attributes:r}),i}async _createNestedUpdateWorkflow(e){const t=k(e.sourceLayer)?W:b,{applyEditsCallback:a,viewModel:o}=this.data,i="create-features"!==this.activeWorkflow?.type?this.activeWorkflow:void 0,r=await t.create({feature:e,parent:i,viewModel:o,applyEdits:a});return await p((()=>!r.updating)),r}async _drainWorkflowStack(e){const t=this._workflowStack,a=[];for(;t.length>0;){const o=t.pop(),i=e(o).then((()=>o.destroy()));this._updatingHandles.addPromise(i),a.push(i)}await Promise.all(a)}highlight(e){this.removeHighlight();const t=this.data.viewModel.view;if(!t||!e)return;const a=e&&t.allLayerViews.items.find((({layer:t})=>t===e.layer||"subtype-sublayer"===e.layer?.type&&e.layer?.parent===t));v(a)&&this.addHandles(a.highlight(e),j)}removeHighlight(){this.removeHandles(j)}_makeRelatedRecordAttributes(e){const{parentFeature:t,relatedLayer:a,relationshipId:o}=e;if(!M(t))return;const i=a.relationships?.find((e=>e.id===o));if(!i)return void P("relationship-not-found","Could not begin creating a related record because the relationship specified could not be found on the destination layer.");if("origin"===i.role)return void P("unsupported-role","Creating new related records in the 'origin' table of a relationship is not yet supported");const r=t.sourceLayer;i.relatedTableId!==r.layerId&&P("invalid-argument-combination","The given parent feature does not belong to the relationship designated by the given relationship ID.");const s=r.relationships?.find((e=>e.id===o));if(!s)return void P("relationship-not-found","Could not begin creating a related record because the relationship specified could not be found on the origin layer.");const n=t.getAttribute(s.keyField);return n||P("no-key-on-origin-feature","The given parent feature does not have a value for the relationship's origin primary key field."),{[i.keyField]:n}}async _popWorkflow(){this._workflowStack.pop()?.destroy();const e=await this._reconcileWorkflowStack();if(e.failureCount>0)throw new a("editor:next-workflow-failed","Popped the top workflow, but the next workflow in the stack failed to activate",e)}async _pushWorkflow(e){const t=this._workflowRequiresSketchViewModel(e);this.activeWorkflow?.exit({removeSketchHandles:t}),await e.start(),this._workflowStack.push(e);const o=await this._reconcileWorkflowStack();if(o.failureCount>0)throw new a("editor:failed-to-start-updating-feature","Failed to enter the provided workflow.",o)}async _reconcileWorkflowStack(){const e=this._workflowStack;try{const t=e.peek();return await(t?.enter()),{activeWorkflow:t,failureCount:0}}catch(t){e.pop().destroy();const{activeWorkflow:a,failureCount:o}=await this._reconcileWorkflowStack();return{activeWorkflow:a,failureCount:o+1}}}_workflowRequiresSketchViewModel(e){const{type:t}=e;return"update-features"===t||"create-features"===t&&!k(e.data.creationInfo?.layer)}static _createWorkflowSteps(e,t="awaiting-feature-to-update"){const{data:i}=e;return F(["awaiting-feature-to-update","awaiting-update-feature-candidate","editing-existing-feature","adding-attachment","editing-attachment"],t,{"awaiting-feature-to-update":()=>({id:"awaiting-feature-to-update",async setUp(){const{spinnerViewModel:t}=i.viewModel,a=i.viewModel.view;let d=null;e.addHandles(o((()=>{d=r(d)})),this.id),i.rootFeature=null,i.candidates=[];const c=a.on("immediate-click",(async o=>{o.stopPropagation(),t.location=o.mapPoint,t.visible=!0,d?.abort();const{editableItems:r}=i.viewModel;d=new AbortController;const c=await new Promise(((e,t)=>{s(d?.signal,(()=>t(n()))),e(S(r,a,o,d?.signal))}));l(d),i.candidates=c.filter((e=>"fulfilled"===e.status)).flatMap((e=>e.value)),t.visible=1===i.candidates.length,0!==i.candidates.length&&(1===i.candidates.length?(i.rootFeature=i.candidates[0],e.go("editing-existing-feature").catch((()=>{})).then((()=>t.visible=!1))):e.next())}));a.focus(),e.addHandles(c,this.id)},async tearDown(){0===i.candidates.length&&(i.viewModel.spinnerViewModel.visible=!1),e.removeHandles(this.id)}}),"awaiting-update-feature-candidate":()=>({id:"awaiting-update-feature-candidate",async setUp(){i.rootFeature=null,e.addHandles([u((()=>i.rootFeature),(t=>e.highlight(t)),w),o((()=>e.removeHighlight()))],this.id)},async tearDown(){e.removeHandles(this.id)}}),"editing-existing-feature":()=>({id:"editing-existing-feature",async setUp(){const{rootFeature:t,viewModel:r}=e.data;if(!t)throw new a("editor:no-feature-specified","Cannot setup the 'updating-existing-feature' step until the root feature is defined");await e.startUpdating(t),r.spinnerViewModel.visible=!1;const s=d((async()=>{await p((()=>!e.updating)),e.previous()})),{featureFormViewModel:n}=i.viewModel,l=n.relatedRecordCallbacks;n.relatedRecordCallbacks={addRelatedRecord:async t=>{await e.startCreatingRelatedRecord(t),n.relationshipId=null},editRelatedRecord:async({relatedFeature:t})=>{await e.startUpdating(t),n.relationshipId=null},showAllRelatedRecords:e=>n.relationshipId=e.relationshipId},e.addHandles([o((()=>n.relatedRecordCallbacks=l)),u((()=>e.nestedWorkflowCount),((e,t)=>{0===e&&0!==t&&s()}),w)],this.id)},async tearDown(){await e.cancelAll(),e.removeHandles(this.id)}}),"adding-attachment":()=>({id:"adding-attachment",parent:"editing-existing-feature",async setUp(){},async tearDown(){i.viewModel.attachmentsViewModel.mode="view"}}),"editing-attachment":()=>({id:"editing-attachment",parent:"editing-existing-feature",async setUp(){},async tearDown(){i.viewModel.attachmentsViewModel.mode="view"}})})}};e([h()],R.prototype,"activeEditableItem",null),e([h()],R.prototype,"activeWorkflow",null),e([h()],R.prototype,"nestedWorkflowCount",null),e([h()],R.prototype,"shouldShowAttachments",null),e([h()],R.prototype,"shouldAllowAttachmentEditing",null),e([h()],R.prototype,"hasPendingEdits",null),e([h()],R.prototype,"helpMessage",null),e([h()],R.prototype,"reliesOnOwnerAdminPrivileges",null),e([h()],R.prototype,"hasInvalidFormTemplate",null),e([h()],R.prototype,"hasUnsupportedFields",null),R=I=e([f(A)],R);const P=(e,t)=>E.warn(`editor:${e}`,t,"The create operation will be allowed to proceed, but the resulting feature may not be related to the given parent feature."),x=e=>!!e&&/update-/.test(e.type),H=R;export{H as default};
|
|
5
|
+
import{_ as e}from"../../chunks/tslib.es6.js";import t from"../../Graphic.js";import a from"../../core/Error.js";import{makeHandle as o}from"../../core/handleUtils.js";import r from"../../core/Logger.js";import{abortMaybe as i}from"../../core/maybe.js";import{onAbort as s,createAbortError as n,throwIfAborted as l,debounce as d}from"../../core/promiseUtils.js";import c from"../../core/Queue.js";import{whenOnce as p,watch as u,sync as w}from"../../core/reactiveUtils.js";import{property as f}from"../../core/accessorSupport/decorators/property.js";import"../../core/accessorSupport/ensureType.js";import"../../core/arrayUtils.js";import"../../core/has.js";import{subclass as h}from"../../core/accessorSupport/decorators/subclass.js";import{isEditableLayer as m}from"../../layers/support/editableLayers.js";import{isSubtypeGroupLayer as g,isTable as k}from"../../layers/support/layerUtils.js";import v from"../../views/draw/support/HighlightHelper.js";import y from"./CreateFeaturesWorkflow.js";import{UpdateFeatureWorkflow as b}from"./UpdateFeatureWorkflow.js";import{UpdateRecordWorkflow as W}from"./UpdateRecordWorkflow.js";import C from"./UpdateWorkflowData.js";import _ from"./Workflow.js";import{createWorkflowSteps as F,fetchCandidates as S}from"./workflowUtils.js";import{isGraphicForRelatableFeatureSupportedLayer as M}from"../Feature/support/featureUtils.js";import{getAllTemplatesForLayer as I}from"../support/templateUtils.js";var U;const j="esri.widgets.Editor.UpdateWorkflow",A=r.getLogger(j);let E=U=class extends _{constructor(e){super(e),this._workflowStack=new c((e=>{let t;for(t of e);return t})),this.type="update"}get activeEditableItem(){const{activeWorkflow:e}=this;return P(e)?e.data.editableItem:void 0}get activeWorkflow(){return this._workflowStack.last()}get nestedWorkflowCount(){return this._workflowStack.length}get shouldShowAttachments(){return!!this.activeEditableItem?.attachmentsOnUpdateEnabled}get shouldAllowAttachmentEditing(){return!!this.activeEditableItem?.supports.includes("update")}get hasPendingEdits(){return Array.from(this._workflowStack).some((e=>e.hasPendingEdits))}get helpMessage(){return"awaiting-feature-to-update"===this.stepId?"select":void 0}get reliesOnOwnerAdminPrivileges(){return this.activeWorkflow?.reliesOnOwnerAdminPrivileges??!1}get hasInvalidFormTemplate(){return!!this.activeEditableItem?.hasInvalidFormTemplate}get hasUnsupportedFields(){return!!this.activeEditableItem?.hasUnsupportedFields}async back(e=(()=>Promise.resolve(!0))){const{featureFormViewModel:t}=this.data.viewModel;if(null==t.relationshipId)if(this.activeWorkflow){if(this.activeWorkflow.hasPendingEdits){if(!await e())return}this.activeWorkflow.hasPreviousStep?await this.activeWorkflow.previous({cancelCurrentStep:!0}):await this.cancelActiveWorkflow({force:!0})}else this.hasPreviousStep?await this.previous({cancelCurrentStep:!0}):await this.cancel({force:!0});else t.relationshipId=null}async cancelActiveWorkflow(e){await(this.activeWorkflow?.cancel(e)),await this._popWorkflow()}async commit(){await this._drainWorkflowStack((e=>e.commit())),await super.commit()}static create(e,t,a){const o=new U({data:new C({applyEditsCallback:a,viewModel:e}),onCommit:async()=>{}});return o._set("steps",this._createWorkflowSteps(o,t)),o}async save(){this.nestedWorkflowCount>1?(await(this.activeWorkflow?.commit()),await this._popWorkflow()):await this.commit()}async startCreatingRelatedRecord(e){try{const t=await this._createNestedCreateFeaturesWorkflow(e);await this._pushWorkflow(t)}catch(t){throw new a("editor:unable-to-start-creating","Could not begin updating the provided feature or table record.",{error:t})}}async startUpdating(e){try{const t=await this._createNestedUpdateWorkflow(e);await this._pushWorkflow(t)}catch(t){throw new a("editor:unable-to-start-updating","Could not begin updating the provided feature or table record.",{error:t})}}async deleteActiveFeature(){const{activeWorkflow:e}=this;if(!e)throw new a("editor:nothing-to-delete","There is no feature to delete");P(e)?await e.deleteAndCommit():await e.cancel(),1===this.nestedWorkflowCount?await this.reset():await this._popWorkflow()}async cancelAll(){await this._drainWorkflowStack((e=>e.cancel({force:!0})))}async _createNestedCreateFeaturesWorkflow(e){const{relatedLayer:t}=e,{addAttachmentsCallback:o,applyEditsCallback:r,viewModel:i}=this.data;if(!m(t))throw new a("editor:unsupported-layer","Editing is not supported on the provided layer");const s=this._getCreationInfoForNestedCreateFeaturesWorkflow(e),n=s.initialFeature?"creating-features":"awaiting-feature-creation-info",l="create-features"!==this.activeWorkflow?.type?this.activeWorkflow:void 0;return y.create({addAttachmentsCallback:o,applyEditsCallback:r,creationInfo:s,parent:l,startAt:n,viewModel:i})}_getCreationInfoForNestedCreateFeaturesWorkflow(e){const{relatedLayer:o}=e;if(!m(o)||g(o))throw new a("editor:unsupported-layer","Editing is not supported on the provided layer");const r={layer:o,maxFeatures:1},i=this._makeRelatedRecordAttributes(e),s=I(o);return s?.length?s.length>1?r.attributeOverrides=i:r.initialFeature=new t({sourceLayer:o,attributes:{...s[0].prototype.attributes,...i}}):r.initialFeature=new t({sourceLayer:o,attributes:i}),r}async _createNestedUpdateWorkflow(e){const t=k(e.sourceLayer)?W:b,{applyEditsCallback:a,viewModel:o}=this.data,r="create-features"!==this.activeWorkflow?.type?this.activeWorkflow:void 0,i=await t.create({feature:e,parent:r,viewModel:o,applyEdits:a});return await p((()=>!i.updating)),i}async _drainWorkflowStack(e){const t=this._workflowStack,a=[];for(;t.length>0;){const o=t.pop(),r=e(o).then((()=>o.destroy()));this._updatingHandles.addPromise(r),a.push(r)}await Promise.all(a)}_makeRelatedRecordAttributes(e){const{parentFeature:t,relatedLayer:a,relationshipId:o}=e;if(!M(t))return;const r=a.relationships?.find((e=>e.id===o));if(!r)return void R("relationship-not-found","Could not begin creating a related record because the relationship specified could not be found on the destination layer.");if("origin"===r.role)return void R("unsupported-role","Creating new related records in the 'origin' table of a relationship is not yet supported");const i=t.sourceLayer;r.relatedTableId!==i.layerId&&R("invalid-argument-combination","The given parent feature does not belong to the relationship designated by the given relationship ID.");const s=i.relationships?.find((e=>e.id===o));if(!s)return void R("relationship-not-found","Could not begin creating a related record because the relationship specified could not be found on the origin layer.");const n=t.getAttribute(s.keyField);return n||R("no-key-on-origin-feature","The given parent feature does not have a value for the relationship's origin primary key field."),{[r.keyField]:n}}async _popWorkflow(){this._workflowStack.pop()?.destroy();const e=await this._reconcileWorkflowStack();if(e.failureCount>0)throw new a("editor:next-workflow-failed","Popped the top workflow, but the next workflow in the stack failed to activate",e)}async _pushWorkflow(e){const t=this._workflowRequiresSketchViewModel(e);this.activeWorkflow?.exit({removeSketchHandles:t}),await e.start(),this._workflowStack.push(e);const o=await this._reconcileWorkflowStack();if(o.failureCount>0)throw new a("editor:failed-to-start-updating-feature","Failed to enter the provided workflow.",o)}async _reconcileWorkflowStack(){const e=this._workflowStack;try{const t=e.peek();return await(t?.enter()),{activeWorkflow:t,failureCount:0}}catch(t){e.pop().destroy();const{activeWorkflow:a,failureCount:o}=await this._reconcileWorkflowStack();return{activeWorkflow:a,failureCount:o+1}}}_workflowRequiresSketchViewModel(e){const{type:t}=e;return"update-feature"===t||"create-features"===t&&!k(e.data.creationInfo?.layer)}static _createWorkflowSteps(e,t="awaiting-feature-to-update"){const{data:r}=e;return F(["awaiting-feature-to-update","awaiting-update-feature-candidate","editing-existing-feature","adding-attachment","editing-attachment"],t,{"awaiting-feature-to-update":()=>({id:"awaiting-feature-to-update",async setUp(){const{spinnerViewModel:t}=r.viewModel,a=r.viewModel.view;let d=null;e.addHandles(o((()=>{d=i(d)})),this.id),r.rootFeature=null,r.candidates=[];const c=a.on("immediate-click",(async o=>{o.stopPropagation(),t.location=o.mapPoint,t.visible=!0,d?.abort();const{editableItems:i}=r.viewModel;d=new AbortController;const c=await new Promise(((e,t)=>{s(d?.signal,(()=>t(n()))),e(S(i,a,o,d?.signal))}));l(d),r.candidates=c.filter((e=>"fulfilled"===e.status)).flatMap((e=>e.value)),t.visible=1===r.candidates.length,0!==r.candidates.length&&(1===r.candidates.length?(r.rootFeature=r.candidates[0],e.go("editing-existing-feature").catch((()=>{})).then((()=>t.visible=!1))):e.next())}));a.focus(),e.addHandles(c,this.id)},async tearDown(){0===r.candidates.length&&(r.viewModel.spinnerViewModel.visible=!1),e.removeHandles(this.id)}}),"awaiting-update-feature-candidate":()=>({id:"awaiting-update-feature-candidate",async setUp(){r.rootFeature=null;const{view:t}=r.viewModel;if(!t)return;const a=new v({view:t});e.addHandles([u((()=>r.rootFeature),((e,t)=>{a.remove(t),a.add(e)}),w),o((()=>a.removeAll()))],this.id)},async tearDown(){e.removeHandles(this.id)}}),"editing-existing-feature":()=>({id:"editing-existing-feature",async setUp(){const{rootFeature:t,viewModel:i}=e.data;if(!t)throw new a("editor:no-feature-specified","Cannot setup the 'updating-existing-feature' step until the root feature is defined");await e.startUpdating(t),i.spinnerViewModel.visible=!1;const s=d((async()=>{await p((()=>!e.updating)),e.previous()})),{featureFormViewModel:n}=r.viewModel,l=n.relatedRecordCallbacks;n.relatedRecordCallbacks={addRelatedRecord:async t=>{await e.startCreatingRelatedRecord(t),n.relationshipId=null},editRelatedRecord:async({relatedFeature:t})=>{await e.startUpdating(t),n.relationshipId=null},showAllRelatedRecords:e=>n.relationshipId=e.relationshipId},e.addHandles([o((()=>n.relatedRecordCallbacks=l)),u((()=>e.nestedWorkflowCount),((e,t)=>{0===e&&0!==t&&s()}),w)],this.id)},async tearDown(){await e.cancelAll(),e.removeHandles(this.id)}}),"adding-attachment":()=>({id:"adding-attachment",parent:"editing-existing-feature",async setUp(){},async tearDown(){r.viewModel.attachmentsViewModel.mode="view"}}),"editing-attachment":()=>({id:"editing-attachment",parent:"editing-existing-feature",async setUp(){},async tearDown(){r.viewModel.attachmentsViewModel.mode="view"}})})}};e([f()],E.prototype,"activeEditableItem",null),e([f()],E.prototype,"activeWorkflow",null),e([f()],E.prototype,"nestedWorkflowCount",null),e([f()],E.prototype,"shouldShowAttachments",null),e([f()],E.prototype,"shouldAllowAttachmentEditing",null),e([f()],E.prototype,"hasPendingEdits",null),e([f()],E.prototype,"helpMessage",null),e([f()],E.prototype,"reliesOnOwnerAdminPrivileges",null),e([f()],E.prototype,"hasInvalidFormTemplate",null),e([f()],E.prototype,"hasUnsupportedFields",null),E=U=e([h(j)],E);const R=(e,t)=>A.warn(`editor:${e}`,t,"The create operation will be allowed to proceed, but the resulting feature may not be related to the given parent feature."),P=e=>!!e&&/update-/.test(e.type),x=E;export{x as default};
|
package/widgets/Expand.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{property as t}from"../core/accessorSupport/decorators/property.js";import"../core/accessorSupport/ensureType.js";import"../core/arrayUtils.js";import"../core/has.js";import{subclass as o}from"../core/accessorSupport/decorators/subclass.js";import n from"./Widget.js";import s from"./Expand/ExpandViewModel.js";import{loadCalciteComponents as r}from"./support/componentsUtils.js";import{globalCss as a}from"./support/globalCss.js";import{legacyIcon as i}from"./support/legacyIcon.js";import{isWidget as d,hasDomNode as l}from"./support/widget.js";import{tsx as p}from"./support/jsxFactory.js";import{messageBundle as c}from"./support/decorators/messageBundle.js";import{accessibleHandler as u}from"./support/decorators/accessibleHandler.js";const h="esri-expand",m={base:h,modeAuto:`${h}--auto`,modeDrawer:`${h}--drawer`,modeFloating:`${h}--floating`,container:`${h}__container`,containerExpanded:`${h}__container--expanded`,panel:`${h}__panel`,iconExpanded:`${h}__icon--expanded`,iconNumber:`${h}__icon-number`,iconNumberExpanded:`${h}__icon-number--expanded`,content:`${h}__content`,contentExpanded:`${h}__content--expanded`,expandMask:`${h}__mask`,expandMaskExpanded:`${h}__mask--expanded`};let x=class extends n{constructor(e,t){super(e,t),this.closeOnEsc=!0,this.collapseIcon=null,this.collapseTooltip="",this.content="",this.expandTooltip="",this.iconClass=null,this.icon=null,this.iconNumber=0,this.messages=null,this.messagesCommon=null,this.mode="auto",this.viewModel=new s,this._handleKeyDown=e=>{const{closeOnEsc:t,_toggleButtonEl:o,expanded:n}=this;if(!n||!t||e.target===o||"Escape"!==e.key)return;("function"==typeof t?t(e):t)&&(this.expanded=!1,o?.focus())}}loadDependencies(){return r({icon:()=>import("@esri/calcite-components/dist/components/calcite-icon.js")})}get contentId(){return`${this.id}_controls_content`}get expandTitle(){const{expanded:e,messagesCommon:t,collapseTooltip:o,expandTooltip:n}=this;return(e?o||t?.collapse:n||t?.expand)??""}get autoCollapse(){return this.viewModel.autoCollapse}set autoCollapse(e){this.viewModel.autoCollapse=e}get collapseIconClass(){return i.collapse}set collapseIconClass(e){this._overrideIfSome("collapseIconClass",e)}get expanded(){return this.viewModel.expanded}set expanded(e){this.viewModel.expanded=e}get expandIconClass(){return d(this.content)?this.content.iconClass:i.expand}set expandIconClass(e){this._overrideIfSome("expandIconClass",e)}get expandIcon(){return d(this.content)?this.content.icon:void 0}set expandIcon(e){this._overrideIfSome("expandIcon",e)}get group(){return this.viewModel.group}set group(e){this.viewModel.group=e}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}expand(){this.viewModel.expanded=!0}collapse(){this.viewModel.expanded=!1}toggle(){this.viewModel.expanded=!this.viewModel.expanded}render(){const{mode:e}=this,t={[m.modeAuto]:"auto"===e,[m.modeDrawer]:"drawer"===e,[m.modeFloating]:"floating"===e};return p("div",{class:this.classes(m.base,a.widget,t),onkeydown:this._handleKeyDown},this._renderMask(),this._renderContainer())}_renderContainer(){const{expanded:e}=this,t={[m.containerExpanded]:e};return p("div",{class:this.classes(m.container,t)},this._renderPanel(),this._renderContent())}_renderMask(){const{expanded:e}=this,t={[m.expandMaskExpanded]:e};return p("div",{bind:this,onclick:this._toggle,class:this.classes(m.expandMask,t)})}_renderBadgeNumber(){const{expanded:e,iconNumber:t}=this;return t&&!e?p("span",{key:"expand__icon-number",class:m.iconNumber},t):null}_renderPanelNumber(){const{iconNumber:e,expanded:t}=this;return e&&t?p("span",{key:"expand__expand-icon-number",class:this.classes(m.iconNumber,m.iconNumberExpanded)},e):null}_renderIcon(){const e=(this.expanded?this.collapseIcon:this.expandIcon)??"";return p("calcite-icon",{key:"icon",icon:e,scale:"s"})}_renderLegacyIcon(){const{collapseIconClass:e,expandIconClass:t,expanded:o}=this,n={[m.iconExpanded]:o};return null!=t&&(n[t]=!o),null!=e&&(n[e]=e===t||o),p("span",{key:"legacy-icon","aria-hidden":"true",class:this.classes(n)})}_renderTitle(){return p("span",{class:i.fontFallbackText},this.expandTitle)}_renderExpandButton(){const{expanded:e,expandTitle:t,expandIcon:o,collapseIcon:n,contentId:s}=this;return p("div",{afterCreate:this._storeToggleButtonEl,"aria-controls":s,"aria-expanded":e?"true":"false",bind:this,class:a.widgetButton,onclick:this._toggle,onkeydown:this._toggle,role:"button",tabIndex:0,title:t},this._renderBadgeNumber(),!e&&null!=o||e&&null!=n?this._renderIcon():this._renderLegacyIcon(),this._renderTitle())}_renderPanel(){return p("div",{class:m.panel},this._renderExpandButton(),this._renderPanelNumber())}_renderContent(){const{expanded:e,contentId:t,content:o}=this,n={[m.contentExpanded]:e},s={id:t,role:"region",class:this.classes(m.content,n)};return"string"==typeof o?p("div",{key:"content__string",innerHTML:o,...s}):d(o)?p("div",{key:"content__widget",...s},o.render()):o instanceof HTMLElement?p("div",{key:"content__html-element",bind:o,afterCreate:this._attachToNode,...s}):l(o)?p("div",{key:"content__node",bind:o.domNode,afterCreate:this._attachToNode,...s}):null}_toggle(){this.toggle()}_attachToNode(e){const t=this;e.appendChild(t)}_storeToggleButtonEl(e){this._toggleButtonEl=e}};e([t({readOnly:!0})],x.prototype,"contentId",null),e([t({readOnly:!0})],x.prototype,"expandTitle",null),e([t()],x.prototype,"autoCollapse",null),e([t()],x.prototype,"closeOnEsc",void 0),e([t()],x.prototype,"collapseIconClass",null),e([t()],x.prototype,"collapseIcon",void 0),e([t()],x.prototype,"collapseTooltip",void 0),e([t()],x.prototype,"content",void 0),e([t()],x.prototype,"expanded",null),e([t()],x.prototype,"expandIconClass",null),e([t()],x.prototype,"expandIcon",null),e([t()],x.prototype,"expandTooltip",void 0),e([t()],x.prototype,"group",null),e([t()],x.prototype,"iconClass",void 0),e([t()],x.prototype,"icon",void 0),e([t()],x.prototype,"iconNumber",void 0),e([t()],x.prototype,"label",null),e([t(),c("esri/widgets/Expand/t9n/Expand")],x.prototype,"messages",void 0),e([t(),c("esri/t9n/common")],x.prototype,"messagesCommon",void 0),e([t()],x.prototype,"mode",void 0),e([t()],x.prototype,"view",null),e([t({type:s})],x.prototype,"viewModel",void 0),e([u()],x.prototype,"_toggle",null),x=e([o("esri.widgets.Expand")],x);const _=x;export{_ as default};
|
|
5
|
+
import{_ as e}from"../chunks/tslib.es6.js";import{property as t}from"../core/accessorSupport/decorators/property.js";import"../core/accessorSupport/ensureType.js";import"../core/arrayUtils.js";import"../core/has.js";import{subclass as o}from"../core/accessorSupport/decorators/subclass.js";import n from"./Widget.js";import s from"./Expand/ExpandViewModel.js";import{loadCalciteComponents as r}from"./support/componentsUtils.js";import{globalCss as a}from"./support/globalCss.js";import{legacyIcon as i}from"./support/legacyIcon.js";import{isWidget as d,hasDomNode as l}from"./support/widget.js";import{tsx as p}from"./support/jsxFactory.js";import{messageBundle as c}from"./support/decorators/messageBundle.js";import{accessibleHandler as u}from"./support/decorators/accessibleHandler.js";const h="esri-expand",m={base:h,modeAuto:`${h}--auto`,modeDrawer:`${h}--drawer`,modeFloating:`${h}--floating`,container:`${h}__container`,containerExpanded:`${h}__container--expanded`,panel:`${h}__panel`,icon:"esri-collapse__icon",iconExpanded:`${h}__icon--expanded`,iconNumber:`${h}__icon-number`,iconNumberExpanded:`${h}__icon-number--expanded`,content:`${h}__content`,contentExpanded:`${h}__content--expanded`,expandMask:`${h}__mask`,expandMaskExpanded:`${h}__mask--expanded`};let x=class extends n{constructor(e,t){super(e,t),this.closeOnEsc=!0,this.collapseIcon=null,this.collapseTooltip="",this.content="",this.expandTooltip="",this.iconClass=null,this.icon=null,this.iconNumber=0,this.messages=null,this.messagesCommon=null,this.mode="auto",this.viewModel=new s,this._handleKeyDown=e=>{const{closeOnEsc:t,_toggleButtonEl:o,expanded:n}=this;if(!n||!t||e.target===o||"Escape"!==e.key)return;("function"==typeof t?t(e):t)&&(this.expanded=!1,o?.focus())}}loadDependencies(){return r({icon:()=>import("@esri/calcite-components/dist/components/calcite-icon.js")})}get contentId(){return`${this.id}_controls_content`}get expandTitle(){const{expanded:e,messagesCommon:t,collapseTooltip:o,expandTooltip:n}=this;return(e?o||t?.collapse:n||t?.expand)??""}get autoCollapse(){return this.viewModel.autoCollapse}set autoCollapse(e){this.viewModel.autoCollapse=e}get collapseIconClass(){return i.collapse}set collapseIconClass(e){this._overrideIfSome("collapseIconClass",e)}get expanded(){return this.viewModel.expanded}set expanded(e){this.viewModel.expanded=e}get expandIconClass(){return d(this.content)?this.content.iconClass:i.expand}set expandIconClass(e){this._overrideIfSome("expandIconClass",e)}get expandIcon(){return d(this.content)?this.content.icon:void 0}set expandIcon(e){this._overrideIfSome("expandIcon",e)}get group(){return this.viewModel.group}set group(e){this.viewModel.group=e}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}expand(){this.viewModel.expanded=!0}collapse(){this.viewModel.expanded=!1}toggle(){this.viewModel.expanded=!this.viewModel.expanded}render(){const{mode:e}=this,t={[m.modeAuto]:"auto"===e,[m.modeDrawer]:"drawer"===e,[m.modeFloating]:"floating"===e};return p("div",{class:this.classes(m.base,a.widget,t),onkeydown:this._handleKeyDown},this._renderMask(),this._renderContainer())}_renderContainer(){const{expanded:e}=this,t={[m.containerExpanded]:e};return p("div",{class:this.classes(m.container,t)},this._renderPanel(),this._renderContent())}_renderMask(){const{expanded:e}=this,t={[m.expandMaskExpanded]:e};return p("div",{bind:this,onclick:this._toggle,class:this.classes(m.expandMask,t)})}_renderBadgeNumber(){const{expanded:e,iconNumber:t}=this;return t&&!e?p("span",{key:"expand__icon-number",class:m.iconNumber},t):null}_renderPanelNumber(){const{iconNumber:e,expanded:t}=this;return e&&t?p("span",{key:"expand__expand-icon-number",class:this.classes(m.iconNumber,m.iconNumberExpanded)},e):null}_renderIcon(){const e=(this.expanded?this.collapseIcon:this.expandIcon)??"";return p("calcite-icon",{key:"icon",icon:e,scale:"s"})}_renderLegacyIcon(){const{collapseIconClass:e,expandIconClass:t,expanded:o}=this,n={[m.iconExpanded]:o};return null!=t&&(n[t]=!o),null!=e&&(n[e]=e===t||o),p("span",{key:"legacy-icon","aria-hidden":"true",class:this.classes(m.icon,n)})}_renderTitle(){return p("span",{class:i.fontFallbackText},this.expandTitle)}_renderExpandButton(){const{expanded:e,expandTitle:t,expandIcon:o,collapseIcon:n,contentId:s}=this;return p("div",{afterCreate:this._storeToggleButtonEl,"aria-controls":s,"aria-expanded":e?"true":"false",bind:this,class:a.widgetButton,onclick:this._toggle,onkeydown:this._toggle,role:"button",tabIndex:0,title:t},this._renderBadgeNumber(),!e&&null!=o||e&&null!=n?this._renderIcon():this._renderLegacyIcon(),this._renderTitle())}_renderPanel(){return p("div",{class:m.panel},this._renderExpandButton(),this._renderPanelNumber())}_renderContent(){const{expanded:e,contentId:t,content:o}=this,n={[m.contentExpanded]:e},s={id:t,role:"region",class:this.classes(m.content,n)};return"string"==typeof o?p("div",{key:"content__string",innerHTML:o,...s}):d(o)?p("div",{key:"content__widget",...s},o.render()):o instanceof HTMLElement?p("div",{key:"content__html-element",bind:o,afterCreate:this._attachToNode,...s}):l(o)?p("div",{key:"content__node",bind:o.domNode,afterCreate:this._attachToNode,...s}):null}_toggle(){this.toggle()}_attachToNode(e){const t=this;e.appendChild(t)}_storeToggleButtonEl(e){this._toggleButtonEl=e}};e([t({readOnly:!0})],x.prototype,"contentId",null),e([t({readOnly:!0})],x.prototype,"expandTitle",null),e([t()],x.prototype,"autoCollapse",null),e([t()],x.prototype,"closeOnEsc",void 0),e([t()],x.prototype,"collapseIconClass",null),e([t()],x.prototype,"collapseIcon",void 0),e([t()],x.prototype,"collapseTooltip",void 0),e([t()],x.prototype,"content",void 0),e([t()],x.prototype,"expanded",null),e([t()],x.prototype,"expandIconClass",null),e([t()],x.prototype,"expandIcon",null),e([t()],x.prototype,"expandTooltip",void 0),e([t()],x.prototype,"group",null),e([t()],x.prototype,"iconClass",void 0),e([t()],x.prototype,"icon",void 0),e([t()],x.prototype,"iconNumber",void 0),e([t()],x.prototype,"label",null),e([t(),c("esri/widgets/Expand/t9n/Expand")],x.prototype,"messages",void 0),e([t(),c("esri/t9n/common")],x.prototype,"messagesCommon",void 0),e([t()],x.prototype,"mode",void 0),e([t()],x.prototype,"view",null),e([t({type:s})],x.prototype,"viewModel",void 0),e([u()],x.prototype,"_toggle",null),x=e([o("esri.widgets.Expand")],x);const _=x;export{_ as default};
|