@arcgis/core 4.28.0-next.20230628 → 4.28.0-next.20230630
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Basemap.js +1 -1
- package/WebMap.js +1 -1
- package/assets/esri/core/workers/RemoteClient.js +1 -1
- package/assets/esri/core/workers/chunks/0fb1dcc426b36b64df57.js +1 -0
- package/assets/esri/core/workers/chunks/{cdd40ce2b6c7ffc7aae1.js → 121e1f6295078ff472d9.js} +1 -1
- package/assets/esri/core/workers/chunks/17428e2661846c430f36.js +1 -0
- package/assets/esri/core/workers/chunks/1c4475057483041418c3.js +1 -0
- package/assets/esri/core/workers/chunks/1caf5062d9e752d6fc5d.js +1 -0
- package/assets/esri/core/workers/chunks/1f3502573d87a41ef309.js +1 -0
- package/assets/esri/core/workers/chunks/2104037076cac08a86a8.js +1 -0
- package/assets/esri/core/workers/chunks/21e5839efeb8d4a33158.js +1 -0
- package/assets/esri/core/workers/chunks/2d011c07ed6ec656884b.js +1 -0
- package/assets/esri/core/workers/chunks/2f9aec2238ff6cb99e09.js +1 -0
- package/assets/esri/core/workers/chunks/388087609ec31456bf75.js +1 -0
- package/assets/esri/core/workers/chunks/3f808a9a32e09f12c8e2.js +1 -0
- package/assets/esri/core/workers/chunks/44de576ed448b1d90afe.js +1 -0
- package/assets/esri/core/workers/chunks/4564acb145061d8eff35.js +1 -0
- package/assets/esri/core/workers/chunks/473401ce9a6b9f745d79.js +1 -0
- package/assets/esri/core/workers/chunks/4804020020afbe5c9450.js +1 -0
- package/assets/esri/core/workers/chunks/4bbbc6f6b9e1b9aa41d9.js +1 -0
- package/assets/esri/core/workers/chunks/512b37dfed32bd4e7779.js +1 -0
- package/assets/esri/core/workers/chunks/{eff6ebce38498a67d34e.js → 58ca4a14a6b419b2a186.js} +1 -1
- package/assets/esri/core/workers/chunks/5caa18b501b69a32fdef.js +1 -0
- package/assets/esri/core/workers/chunks/{71fbda510a7baf170046.js → 5d621c7fb044c7ce956a.js} +1 -1
- package/assets/esri/core/workers/chunks/63c755307cf3e223022b.js +1 -0
- package/assets/esri/core/workers/chunks/653b97674d8aa92ae45b.js +1 -0
- package/assets/esri/core/workers/chunks/69d6e022cc30ba90f276.js +1 -0
- package/assets/esri/core/workers/chunks/6e75955095362a758608.js +1 -0
- package/assets/esri/core/workers/chunks/730eb7e5f617fdab4f10.js +1 -0
- package/assets/esri/core/workers/chunks/7533b30a84240a5e734a.js +2 -0
- package/assets/esri/core/workers/chunks/{6a3d611e8842afbb50ab.js.LICENSE.txt → 7533b30a84240a5e734a.js.LICENSE.txt} +5 -0
- package/assets/esri/core/workers/chunks/765ba95fcf11eea01118.js +1 -0
- package/assets/esri/core/workers/chunks/7deec47a626292ba8361.js +1 -0
- package/assets/esri/core/workers/chunks/7e413e74d3424d4de29f.js +1 -0
- package/assets/esri/core/workers/chunks/826c4777e103153718a2.js +1 -0
- package/assets/esri/core/workers/chunks/8b359c3ab0328f691ebc.js +1 -0
- package/assets/esri/core/workers/chunks/{0c621046b7211cdde980.js → 93e898dc81a699f93ee2.js} +1 -1
- package/assets/esri/core/workers/chunks/96c8df103782c717a524.js +1 -0
- package/assets/esri/core/workers/chunks/970d0f0ae4c80ce740de.js +1 -0
- package/assets/esri/core/workers/chunks/97b7e5b766df650ebb0d.js +1 -0
- package/assets/esri/core/workers/chunks/{3bee743f4c9370045a5d.js → 9c909d1356ae9a97c996.js} +1 -1
- package/assets/esri/core/workers/chunks/a2023974fe3ced3d18ce.js +1 -0
- package/assets/esri/core/workers/chunks/{c3f4c5d530b586a3454d.js → a3b4ffce24af4bdd51fe.js} +1 -1
- package/assets/esri/core/workers/chunks/aac14b378215d45b6c82.js +1 -0
- package/assets/esri/core/workers/chunks/ab3d945ece3e41e80862.js +1 -0
- package/assets/esri/core/workers/chunks/aca2b351a56715e0031b.js +1 -0
- package/assets/esri/core/workers/chunks/b02307668b89bec565bf.js +1 -0
- package/assets/esri/core/workers/chunks/{bf3a6346ec25692e130c.js → b43ecdff439d9f4223f1.js} +1 -1
- package/assets/esri/core/workers/chunks/bbb981552af3d81073a6.js +1 -0
- package/assets/esri/core/workers/chunks/bd62bab5831db0b4ed05.js +1 -0
- package/assets/esri/core/workers/chunks/{69f51a7768bf51c9e346.js → befba0bc0409f9a1f0bc.js} +1 -1
- package/assets/esri/core/workers/chunks/c4bcc610f5352815a154.js +1 -0
- package/assets/esri/core/workers/chunks/c7affe71abbf791475fc.js +1 -0
- package/assets/esri/core/workers/chunks/cea2d209de9e85fca22a.js +1 -0
- package/assets/esri/core/workers/chunks/d12313b3d1ab84b405e6.js +1 -0
- package/assets/esri/core/workers/chunks/d218190dbb8c1e090bc7.js +1 -0
- package/assets/esri/core/workers/chunks/d4cb1cdd1cc5240526de.js +1 -0
- package/assets/esri/core/workers/chunks/d86ec98a0582cd3dfe8c.js +1 -0
- package/assets/esri/core/workers/chunks/d9547775ee9289af8b75.js +1 -0
- package/assets/esri/core/workers/chunks/{017910d3512367b5d22e.js → da17d217222d6aee4c3e.js} +1 -1
- package/assets/esri/core/workers/chunks/{013efa75c96be04cf57a.js → dd6b59200a59d8361014.js} +1 -1
- package/assets/esri/core/workers/chunks/e06d3649540219430f4d.js +1 -0
- package/assets/esri/core/workers/chunks/e0dfd109e860371d7323.js +1 -0
- package/assets/esri/core/workers/chunks/e144f4343910ca9c2c5c.js +1 -0
- package/assets/esri/core/workers/chunks/{d16850b98a53ade0de10.js → e6d2c971560cf0d52ea5.js} +1 -1
- package/assets/esri/core/workers/chunks/e768bf483efc60a53ed1.js +1 -0
- package/assets/esri/core/workers/chunks/e86f9ee29ea5587c7488.js +1 -0
- package/assets/esri/core/workers/chunks/eee4eeb64a637e9a2be0.js +1 -0
- package/assets/esri/core/workers/chunks/f3225ae2673562f2592d.js +1 -0
- package/assets/esri/core/workers/chunks/f3451baca674807cf3b0.js +1 -0
- package/assets/esri/core/workers/chunks/f6ae8c288a42e4ba5bd5.js +1 -0
- package/assets/esri/core/workers/chunks/{cc15e28a99694120556d.js → fbc60f4873dbf2cab9c7.js} +1 -1
- package/assets/esri/core/workers/chunks/{99512f2aa78e8ff6b6c6.js → fe43a33f00ba2db2e0e4.js} +1 -1
- package/assets/esri/core/workers/chunks/ff5b8dedfba461432956.js +1 -0
- package/assets/esri/themes/base/widgets/_ButtonMenu.scss +0 -41
- package/assets/esri/themes/base/widgets/_Editor.scss +4 -2
- package/assets/esri/themes/base/widgets/_ElevationProfile.scss +24 -189
- package/assets/esri/themes/base/widgets/_FeatureTable.scss +0 -7
- package/assets/esri/themes/base/widgets/_MeasurementWidgetContent.scss +1 -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/chunks/Theme.js +1 -1
- package/chunks/tslib.es6.js +1 -1
- package/core/Collection.js +1 -1
- package/core/CollectionFlattener.js +1 -1
- package/core/promiseUtils.js +1 -1
- package/core/reactiveUtils.js +1 -1
- package/geometry/support/MeshGeoreferencedRelativeVertexSpace.js +1 -1
- package/geometry/support/MeshLocalVertexSpace.js +1 -1
- package/interfaces.d.ts +32 -0
- package/layers/FeatureLayer.js +1 -1
- package/layers/SubtypeGroupLayer.js +1 -1
- package/layers/VoxelWasmPerSceneView.js +1 -1
- package/layers/graphics/data/QueryEngineCapabilities.js +1 -1
- package/layers/graphics/sources/FeatureLayerSource.js +1 -1
- package/layers/graphics/sources/OGCFeatureSource.js +1 -1
- package/layers/mixins/ArcGISImageService.js +1 -1
- package/layers/mixins/FeatureLayerBase.js +1 -1
- package/layers/mixins/PortalLayer.js +1 -1
- package/layers/mixins/refresh.js +1 -1
- package/layers/ogc/wfsUtils.js +1 -1
- package/layers/save/featureLayerUtils.js +1 -1
- package/layers/support/capabilities.js +1 -1
- package/layers/support/featureLayerUtils.js +1 -1
- package/layers/support/layersCreator.js +1 -1
- package/layers/support/serviceCapabilitiesUtils.js +1 -1
- package/package.json +1 -1
- package/smartMapping/support/adapters/support/utils.js +1 -1
- package/support/revision.js +1 -1
- package/support/timeUtils.js +1 -1
- package/views/2d/engine/vectorTiles/TileHandler.js +1 -1
- package/views/2d/layers/features/sources/DataTileSource.js +1 -1
- package/views/2d/layers/imagery/BaseImageryTileSubView2D.js +1 -1
- package/views/3d/analysis/Dimension/DimensionController.js +1 -1
- package/views/3d/analysis/Dimension/DimensionVisualization.js +1 -1
- package/views/3d/analysis/Dimension/LengthDimensionSubTool.js +1 -1
- package/views/3d/analysis/DimensionAnalysisView3D.js +1 -1
- package/views/3d/environment/EnvironmentRenderer.js +1 -1
- package/views/3d/environment/Precipitation.js +1 -1
- package/views/3d/environment/SceneViewEnvironmentManager.js +1 -1
- package/views/3d/externalRenderers/ExternalRendererStore.js +1 -1
- package/views/3d/interactive/visualElements/LaserlineVisualElement.js +1 -1
- package/views/3d/layers/I3SMeshView3D.js +1 -1
- package/views/3d/layers/PointCloudLayerView3D.js +1 -1
- package/views/3d/layers/graphics/Graphics3DObjectSymbolLayer.js +1 -1
- package/views/3d/layers/i3s/PointRenderer.js +1 -1
- package/views/3d/support/DisplayQualityProfile.js +1 -1
- package/views/3d/support/MemoryController.js +1 -1
- package/views/3d/terrain/OverlayManager.js +1 -1
- package/views/3d/terrain/TerrainRenderer.js +1 -1
- package/views/3d/terrain/TerrainSurface.js +1 -1
- package/views/3d/webgl-engine/Stage.js +1 -1
- package/views/3d/webgl-engine/core/renderPasses/RenderPassManager.js +1 -1
- package/views/3d/webgl-engine/lib/RenderFeature.js +1 -1
- package/views/3d/webgl-engine/lib/RenderPluginManager.js +1 -1
- package/views/3d/webgl-engine/lib/Renderer.js +1 -1
- package/views/3d/webgl-engine/lib/edgeRendering/EdgeRenderer.js +1 -1
- package/views/3d/webgl-engine/lib/lodRendering/BackedBufferObject.js +1 -1
- package/views/3d/webgl-engine/lib/lodRendering/LodRenderer.js +1 -1
- package/views/3d/webgl-engine/lib/lodRendering/RenderInstanceData.js +1 -1
- package/views/draw/support/GraphicMover.js +1 -1
- package/views/interactive/dragEventPipeline.js +1 -1
- package/views/interactive/snapping/FeatureSnappingEngine.js +1 -1
- package/views/layers/FeatureLayerView.js +1 -1
- package/views/layers/support/MapServiceLayerViewHelper.js +1 -1
- package/views/webgl/RenderingContext.js +1 -1
- package/views/webgl/Util.js +1 -1
- package/views/webgl/capabilities/Capabilities.js +1 -1
- package/webdoc/support/saveUtils.js +1 -1
- package/widgets/Editor/UpdateWorkflow.js +1 -1
- package/widgets/Editor/workflowUtils.js +1 -1
- package/widgets/ElevationProfile/components/Legend.js +1 -1
- package/widgets/ElevationProfile/components/LegendItem.js +1 -1
- package/widgets/ElevationProfile/components/SettingsButton.js +1 -1
- package/widgets/ElevationProfile/components/Statistics.js +1 -1
- package/widgets/ElevationProfile/css.js +1 -1
- package/widgets/ElevationProfile.js +1 -1
- package/widgets/Feature/FeatureMedia/xyChart.js +1 -1
- package/widgets/FeatureTable/Grid/support/ButtonMenu.js +1 -1
- package/widgets/FeatureTemplates/FeatureTemplatesViewModel.js +1 -1
- package/widgets/FeatureTemplates/ItemList.js +1 -1
- package/widgets/FeatureTemplates.js +1 -1
- package/widgets/Legend/support/ActiveLayerInfo.js +1 -1
- package/widgets/Widget.js +1 -1
- package/widgets/support/chartUtilsAm5.js +1 -1
- package/assets/esri/core/workers/chunks/0380e9f61b6f3ca85139.js +0 -1
- package/assets/esri/core/workers/chunks/1497709057d28ce7c1be.js +0 -1
- package/assets/esri/core/workers/chunks/156e801a3262f0ac79c0.js +0 -1
- package/assets/esri/core/workers/chunks/15cd07230970ea4e61cb.js +0 -1
- package/assets/esri/core/workers/chunks/1a42c6a0b5a1c7dd8bfb.js +0 -1
- package/assets/esri/core/workers/chunks/1ae75f5282e983f6d768.js +0 -1
- package/assets/esri/core/workers/chunks/21132f6fba46bcfdebdb.js +0 -1
- package/assets/esri/core/workers/chunks/26dc66f0e00d533d9001.js +0 -1
- package/assets/esri/core/workers/chunks/294285f2822c101326ec.js +0 -1
- package/assets/esri/core/workers/chunks/29f9a380610e4fd98a7c.js +0 -1
- package/assets/esri/core/workers/chunks/303238fc2fcdbb277981.js +0 -1
- package/assets/esri/core/workers/chunks/3f19a7fa65ebedd6b938.js +0 -1
- package/assets/esri/core/workers/chunks/4018d8a06471423cb672.js +0 -1
- package/assets/esri/core/workers/chunks/40ee4e0a5000a08c3abd.js +0 -1
- package/assets/esri/core/workers/chunks/4128e45e17c9e5280e11.js +0 -1
- package/assets/esri/core/workers/chunks/4a071d0b980911e3d010.js +0 -1
- package/assets/esri/core/workers/chunks/4af955f49b69b7f31b2a.js +0 -1
- package/assets/esri/core/workers/chunks/505792ce8cbbddd2e815.js +0 -1
- package/assets/esri/core/workers/chunks/52e111852b038069d983.js +0 -1
- package/assets/esri/core/workers/chunks/570e94f4fbefc856d303.js +0 -1
- package/assets/esri/core/workers/chunks/5b9c531a8e9591167cbd.js +0 -1
- package/assets/esri/core/workers/chunks/5f6e899aceffcf9bffb0.js +0 -1
- package/assets/esri/core/workers/chunks/60486acc5dacf73f851a.js +0 -1
- package/assets/esri/core/workers/chunks/6a3d611e8842afbb50ab.js +0 -2
- package/assets/esri/core/workers/chunks/719f741a0e45c3e694ba.js +0 -1
- package/assets/esri/core/workers/chunks/7304f45f5622a68253e4.js +0 -1
- package/assets/esri/core/workers/chunks/7694521b44681d52b713.js +0 -1
- package/assets/esri/core/workers/chunks/7dc6774c77c822b68c99.js +0 -1
- package/assets/esri/core/workers/chunks/82a103a8b5382300889d.js +0 -1
- package/assets/esri/core/workers/chunks/840fd05ceaa038c476d6.js +0 -1
- package/assets/esri/core/workers/chunks/847f3d6bb0d0318e1f74.js +0 -1
- package/assets/esri/core/workers/chunks/89f7fd2ab92aa14fe0c0.js +0 -1
- package/assets/esri/core/workers/chunks/8a6f29f2ebd59783bb1b.js +0 -1
- package/assets/esri/core/workers/chunks/9112d2c37c8709ee972f.js +0 -1
- package/assets/esri/core/workers/chunks/9b9dea1e51d1fc7d82d6.js +0 -1
- package/assets/esri/core/workers/chunks/a0face18b3ea567999ef.js +0 -1
- package/assets/esri/core/workers/chunks/a6ece91e6b3343f133a0.js +0 -1
- package/assets/esri/core/workers/chunks/b9ef05c22bc3e395bcb3.js +0 -1
- package/assets/esri/core/workers/chunks/bb3c94acc6d60436e40a.js +0 -1
- package/assets/esri/core/workers/chunks/bc5e34200776cfc83d5b.js +0 -1
- package/assets/esri/core/workers/chunks/c3ab84c5b4e6ae91cde9.js +0 -1
- package/assets/esri/core/workers/chunks/c43d3c7e255f2c409c8f.js +0 -1
- package/assets/esri/core/workers/chunks/c6af4e533e24a2cf4da6.js +0 -1
- package/assets/esri/core/workers/chunks/c8c7482b4ba91fb7c296.js +0 -1
- package/assets/esri/core/workers/chunks/c9f5e949830196ad9458.js +0 -1
- package/assets/esri/core/workers/chunks/ce9c99cee3d1a3963e7c.js +0 -1
- package/assets/esri/core/workers/chunks/cf9a87b53ea74bae6a37.js +0 -1
- package/assets/esri/core/workers/chunks/d24f7ef6eca8c91b90b4.js +0 -1
- package/assets/esri/core/workers/chunks/da0ab3f64802204323ed.js +0 -1
- package/assets/esri/core/workers/chunks/de20572d334abd4a7d82.js +0 -1
- package/assets/esri/core/workers/chunks/df661a3b3629bd122a73.js +0 -1
- package/assets/esri/core/workers/chunks/eb7053ba7e491bf25829.js +0 -1
- package/assets/esri/core/workers/chunks/f0d994ec2c21d5e47ef5.js +0 -1
- package/assets/esri/core/workers/chunks/f1da7b29eecad0e9efae.js +0 -1
- package/assets/esri/core/workers/chunks/f1ebc68f46261bd642c2.js +0 -1
- package/assets/esri/core/workers/chunks/f53f20c7100092823487.js +0 -1
- package/assets/esri/core/workers/chunks/f556490dae3c69419052.js +0 -1
- package/assets/esri/core/workers/chunks/f6b7713b600b1d253801.js +0 -1
- package/views/webgl/capabilities/Instancing.js +0 -5
package/Basemap.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 r from"./core/Collection.js";import{referenceSetter as t}from"./core/collectionUtils.js";import{deprecated as s}from"./core/deprecate.js";import{JSONSupportMixin as a}from"./core/JSONSupport.js";import{isClonable as o,clone as i}from"./core/lang.js";import n from"./core/Loadable.js";import{loadAll as l}from"./core/loadAll.js";import p from"./core/Logger.js";import{throwIfAborted as c
|
|
5
|
+
import{_ as e}from"./chunks/tslib.es6.js";import r from"./core/Collection.js";import{referenceSetter as t}from"./core/collectionUtils.js";import{deprecated as s}from"./core/deprecate.js";import{JSONSupportMixin as a}from"./core/JSONSupport.js";import{isClonable as o,clone as i}from"./core/lang.js";import n from"./core/Loadable.js";import{loadAll as l}from"./core/loadAll.js";import p from"./core/Logger.js";import{throwIfAborted as c}from"./core/promiseUtils.js";import{isProtocolRelative as m,urlToObject as h}from"./core/urlUtils.js";import{property as u}from"./core/accessorSupport/decorators/property.js";import"./core/accessorSupport/ensureType.js";import{subclass as y}from"./core/accessorSupport/decorators/subclass.js";import{writer as d}from"./core/accessorSupport/decorators/writer.js";import f from"./geometry/SpatialReference.js";import b from"./portal/Portal.js";import L from"./portal/PortalItem.js";import{getBasemapTitle as g,esriBasemapDefinitions as w}from"./support/basemapDefinitions.js";import{getLayerJSON as I}from"./webdoc/support/writeUtils.js";var j;let S=0;const v="esri.Basemap";let _=j=class extends(a(n)){constructor(e){super(e),this.id=null,this.portalItem=null,this.spatialReference=null,this.thumbnailUrl=null,this.title="Basemap",this.id=Date.now().toString(16)+"-basemap-"+S++,this.baseLayers=new r,this.referenceLayers=new r;const t=e=>{e.parent&&e.parent!==this&&"remove"in e.parent&&e.parent.remove(e),e.parent=this,"elevation"===e.type&&p.getLogger(this).error(`Layer '${e.title}, id:${e.id}' of type '${e.type}' is not supported as a basemap layer and will therefore be ignored.`)},s=e=>{e.parent=null};this.addHandles([this.baseLayers.on("after-add",(e=>t(e.item))),this.referenceLayers.on("after-add",(e=>t(e.item))),this.baseLayers.on("after-remove",(e=>s(e.item))),this.referenceLayers.on("after-remove",(e=>s(e.item)))])}initialize(){this.when().catch((e=>{p.getLogger(this).error("#load()",`Failed to load basemap (title: '${this.title}', id: '${this.id}')`,e)})),this.resourceInfo&&this.read(this.resourceInfo.data,this.resourceInfo.context)}destroy(){this.baseLayers.destroy(),this.referenceLayers.destroy(),this.portalItem=null}normalizeCtorArgs(e){return e&&"resourceInfo"in e&&(this._set("resourceInfo",e.resourceInfo),delete(e={...e}).resourceInfo),e}set baseLayers(e){this._set("baseLayers",t(e,this._get("baseLayers")))}_writeBaseLayers(e,r,t){const s=[];e?(t={...t,layerContainerType:"basemap"},this.baseLayers.forEach((e=>{const r=I(e,t.webmap?t.webmap.getLayerJSONFromResourceInfo(e):null,t);null!=r&&s.push(r)})),this.referenceLayers.forEach((e=>{const r=I(e,t.webmap?t.webmap.getLayerJSONFromResourceInfo(e):null,t);null!=r&&("scene"!==e.type&&(r.isReference=!0),s.push(r))})),r.baseMapLayers=s):r.baseMapLayers=s}set referenceLayers(e){this._set("referenceLayers",t(e,this._get("referenceLayers")))}writeTitle(e,r){r.title=e||"Basemap"}load(e){return this.addResolvingPromise(this._loadFromSource(e)),Promise.resolve(this)}loadAll(){return l(this,(e=>{e(this.baseLayers,this.referenceLayers)}))}clone(){const e={id:this.id,title:this.title,portalItem:this.portalItem,baseLayers:this.baseLayers.map((e=>o(e)?e.clone():e)),referenceLayers:this.referenceLayers.map((e=>o(e)?e.clone():e))};return this.loaded&&(e.loadStatus="loaded"),new j({resourceInfo:this.resourceInfo}).set(e)}read(e,r){this.resourceInfo||this._set("resourceInfo",{data:e,context:r}),super.read(e,r)}write(e,r){return e=e||{},r&&r.origin||(r={origin:"web-map",...r}),super.write(e,r),!this.loaded&&this.resourceInfo&&this.resourceInfo.data.baseMapLayers&&(e.baseMapLayers=this.resourceInfo.data.baseMapLayers.map((e=>{const r=i(e);return r.url&&m(r.url)&&(r.url=`https:${r.url}`),r.templateUrl&&m(r.templateUrl)&&(r.templateUrl=`https:${r.templateUrl}`),r}))),e}async _loadFromSource(e){const{resourceInfo:r,portalItem:t}=this;c(e);const s=[];if(r){const t=r.context?r.context.url:null;if(s.push(this._loadLayersFromJSON(r.data,t,e)),r.data.id&&!r.data.title){const e=r.data.id;s.push(g(e).then((e=>{e&&this.read({title:e},r.context)})))}}else t&&s.push(this._loadFromItem(t,e));await Promise.all(s)}async _loadLayersFromJSON(e,r,t){const s=this.resourceInfo&&this.resourceInfo.context,a=this.portalItem&&this.portalItem.portal||s&&s.portal||null,o=U[s?.origin||""]??"web-map",{populateOperationalLayers:i}=await import("./layers/support/layersCreator.js"),n=[];if(c(t),e.baseMapLayers&&Array.isArray(e.baseMapLayers)){const t={context:{origin:o,url:r,portal:a,layerContainerType:"basemap"},defaultLayerType:"DefaultTileLayer"},s=e=>"web-scene"===o&&"ArcGISSceneServiceLayer"===e.layerType||e.isReference,l=i(this.baseLayers,e.baseMapLayers.filter((e=>!s(e))),t);n.push(l);const p=i(this.referenceLayers,e.baseMapLayers.filter(s),t);n.push(p)}await Promise.allSettled(n)}async _loadFromItem(e,r){const t=await e.load(r),s=await t.fetchData("json",r),a=h(e.itemUrl??"");return this._set("resourceInfo",{data:s.baseMap??{},context:{origin:M[e.type||""]??"web-map",portal:e.portal||b.getDefault(),url:a}}),this.read(this.resourceInfo.data,this.resourceInfo.context),this.read({spatialReference:s.spatialReference},this.resourceInfo.context),this.read({title:e.title,thumbnailUrl:e.thumbnailUrl},{origin:"portal-item",portal:e.portal||b.getDefault(),url:a}),this._loadLayersFromJSON(this.resourceInfo.data,a,r)}static fromId(e){const r=w[e];if(!r)return null;if(r.deprecated){let r=null;"dark-gray"===e?r="dark-gray-vector":"gray"===e?r="gray-vector":"streets"===e?r="streets-vector":"topo"===e&&(r="topo-vector"),s(p.getLogger(v),`The ${e} basemap has entered mature support and is no longer being updated.`,{replacement:r,see:"https://arcg.is/1iq8aD",warnOnce:!0})}return j.fromJSON(r)}};e([u({json:{write:{ignoreOrigin:!0,target:"baseMapLayers",writer(e,r,t,s){this._writeBaseLayers(e,r,s)}},origins:{"web-scene":{write:{ignoreOrigin:!0,target:{baseMapLayers:{type:r}},writer(e,r,t,s){this._writeBaseLayers(e,r,s)}}}}}})],_.prototype,"baseLayers",null),e([u({type:String,json:{origins:{"web-scene":{write:!0}}}})],_.prototype,"id",void 0),e([u({type:L})],_.prototype,"portalItem",void 0),e([u()],_.prototype,"referenceLayers",null),e([u({readOnly:!0})],_.prototype,"resourceInfo",void 0),e([u({type:f})],_.prototype,"spatialReference",void 0),e([u()],_.prototype,"thumbnailUrl",void 0),e([u({type:String,json:{origins:{"web-scene":{write:{isRequired:!0}}}}})],_.prototype,"title",void 0),e([d("title")],_.prototype,"writeTitle",null),_=j=e([y(v)],_);const M={"Web Scene":"web-scene","Web Map":"web-map","Link Chart":"link-chart"},U={"web-scene":"web-scene","web-map":"web-map","link-chart":"link-chart"},x=_;export{x as default};
|
package/WebMap.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{version as t}from"./kernel.js";import r from"./Map.js";import i from"./Viewpoint.js";import{isSome as o}from"./core/arrayUtils.js";import a from"./core/Collection.js";import s from"./core/Error.js";import n from"./core/Loadable.js";import{loadAll as l}from"./core/loadAll.js";import p from"./core/Logger.js";import{MultiOriginJSONMixin as u,MultiOriginJSONSupport as m}from"./core/MultiOriginJSONSupport.js";import{EsriPromiseMixin as h}from"./core/Promise.js";import{debounce as d,eachAlways as c}from"./core/promiseUtils.js";import{whenOnce as y}from"./core/reactiveUtils.js";import{urlToObject as w,hasSameCanonicalArcGISOnlinePortal as f,isDataProtocol as g,dataComponents as b,addQueryParameter as _}from"./core/urlUtils.js";import{property as v}from"./core/accessorSupport/decorators/property.js";import"./core/accessorSupport/ensureType.js";import"./core/has.js";import{reader as A}from"./core/accessorSupport/decorators/reader.js";import{subclass as I}from"./core/accessorSupport/decorators/subclass.js";import{writer as S}from"./core/accessorSupport/decorators/writer.js";import{updateOrigins as j}from"./core/accessorSupport/originUtils.js";import{readLoadable as U}from"./core/accessorSupport/read.js";import O from"./geometry/SpatialReference.js";import{equals as P}from"./geometry/support/spatialReferenceUtils.js";import{webMercatorToGeographic as L}from"./geometry/support/webMercatorUtils.js";import{isServerOrServicesAGOLUrl as V}from"./layers/support/arcgisLayerUrl.js";import{isLayerWithFeatureLayerSource as R,isFeatureCollectionLayer as T}from"./layers/support/layerUtils.js";import F from"./networks/UtilityNetwork.js";import W from"./portal/Portal.js";import k from"./portal/PortalItem.js";import{removeTypeKeyword as N,addTypeKeyword as E,hasTypeKeyword as M,TypeKeyword as C}from"./portal/support/portalItemUtils.js";import{project as x}from"./rest/geometryService/project.js";import B from"./rest/support/ProjectParameters.js";import{hasDeveloperBasemapLayer as J,isDeveloperBasemapLayer as D,findSpatialReference as G}from"./support/basemapUtils.js";import K from"./support/MapFloorInfo.js";import $ from"./webdoc/GeotriggersInfo.js";import{SaveOperationType as z}from"./webdoc/interfaces.js";import q from"./webdoc/RangeInfo.js";import H from"./webdoc/Widgets.js";import{getOptimalThumbnailSize as Q}from"./webdoc/support/thumbnailUtils.js";import{getLayerJSON as X}from"./webdoc/support/writeUtils.js";import Y from"./webmap/ApplicationProperties.js";import Z from"./webmap/Bookmark.js";import ee from"./webmap/InitialViewProperties.js";import{computeInitialViewpoint as te}from"./webmap/initialViewPropertiesUtils.js";import{Version as re}from"./webmap/Version.js";import ie from"./webmap/background/ColorBackground.js";const oe=new re(2,28),ae="Web Map",se=a.ofType(Z),ne=a.ofType(F),le=new Map;le.set("image/jpeg","jpeg"),le.set("image/jpg","jpg"),le.set("image/png","png"),le.set("image/gif","gif");const pe="ArcGIS Pro",ue=C.JSAPI,me="CollectorDisabled",he="Collector",de="Data Editing",ce="OfflineDisabled",ye="Offline",we="Workforce Project",fe="Workforce Worker",ge="Workforce Dispatcher",be="Offline Map Areas",_e="FieldMapsDisabled",ve=C.DEVELOPER_BASEMAP,Ae="UtilityNetwork",Ie=["NatGeo_World_Map","Ocean_Basemap","USA_Topo_Maps","World_Imagery","World_Street_Map","World_Terrain_Base","World_Topo_Map","World_Hillshade","Canvas/World_Light_Gray_Base","Canvas/World_Light_Gray_Reference","Canvas/World_Dark_Gray_Base","Canvas/World_Dark_Gray_Reference","Ocean/World_Ocean_Base","Ocean/World_Ocean_Reference","Reference/World_Boundaries_and_Places","Reference/World_Reference_Overlay","Reference/World_Transportation"].map((e=>e.toLowerCase()));let Se=class extends(u(n.LoadableMixin(h(r)))){constructor(e){super(e),this._isAuthoringAppSetByUser=!1,this._isAuthoringAppVersionSetByUser=!1,this._thumbnailFilename=null,this._updateFromPromise=null,this._resourceReferences={portalItem:null,paths:[]},this.applicationProperties=null,this.bookmarks=new se,this.floorInfo=null,this.geotriggersInfo=null,this.initialViewProperties=new ee,this.portalItem=null,this.presentation=null,this.sourceVersion=null,this.widgets=null,this.utilityNetworks=null,this._debouncedSaveOperations=d((async(e,t,r)=>{switch(e){case z.SAVE:return this._saveImpl(t);case z.SAVE_AS:return this._saveAsImpl(r,t)}})),this.authoringApp=this.authoringAppVersion=null,this._isAuthoringAppSetByUser=this._isAuthoringAppVersionSetByUser=!1}destroy(){const e=this.portalItem;this.portalItem=null,e?.destroy()}initialize(){if(this.when().catch((e=>{p.getLogger(this).error("#load()","Failed to load web map",e)})),this.resourceInfo){let t;try{t=this._validateJSON(this.resourceInfo)}catch(e){return void this.addResolvingPromise(Promise.reject(e))}this.read(t)}}set authoringApp(e){this._isAuthoringAppSetByUser=!0,this._set("authoringApp",e)}writeAuthoringApp(e,t){e&&this._isAuthoringAppSetByUser?t.authoringApp=e:t.authoringApp=ue}set authoringAppVersion(e){this._isAuthoringAppVersionSetByUser=!0,this._set("authoringAppVersion",e)}writeAuthoringAppVersion(e,r){e&&this._isAuthoringAppVersionSetByUser?r.authoringAppVersion=e:r.authoringAppVersion=t}readInitialViewProperties(e,t){const r=new ee;t.background&&(r.background=ie.fromJSON(t.background));const o=t.initialState?.viewpoint;if(o){if(o.rotation){re.parse(t.version||"","webmap").lessThan(2,20)&&t.authoringApp===pe&&(o.rotation*=-1)}r.viewpoint=i.fromJSON(o)}return t.mapRangeInfo&&(r.rangeInfo=q.fromJSON(t.mapRangeInfo)),t.spatialReference&&(r.spatialReference=O.fromJSON(t.spatialReference)),r}writeInitialViewProperties(e,t,r,i){if(!e)return;const o=e.background;o&&o.color&&(t.background=o.write({},i)),e.viewpoint&&(t.initialState={viewpoint:e.viewpoint.write({},i)}),e.rangeInfo&&(t.mapRangeInfo=e.rangeInfo.toJSON(i)),e.spatialReference&&(t.spatialReference=e.spatialReference.write({},i))}writeLayers(e,t,r,i){t[r]=this._writeLayers(e,i,"operational-layers")}readSourceVersion(e,t){const[r,i]=t.version.split(".");return new re(parseInt(r,10),parseInt(i,10))}writeSourceVersion(e,t,r){t[r]=`${oe.major}.${oe.minor}`}writeTables(e,t,r,i){const o=this._writeLayers(e,i,"tables");o.length&&(t[r]=o)}get thumbnailUrl(){return this.portalItem&&this.portalItem.thumbnailUrl||null}set thumbnailUrl(e){e?(this._override("thumbnailUrl",e),this._thumbnailFilename=this._generateCustomThumbnailFilename(e)):this._clearThumbnailOverride()}load(e){return this.addResolvingPromise(this._loadFromSource()),Promise.resolve(this)}loadAll(){return l(this,(e=>{e(this.ground,this.basemap,this.layers,this.tables)}))}read(e,t){t={...t,origin:"web-map"};const r=this._getAuthoringPropsState();U(this,e,(t=>super.read(e,t)),t),this._restoreAuthoringPropsFromState(r)}write(e,t){if("loaded"!==this.loadStatus){const e=new s("webmap:not-loaded","Web map must be loaded before it can be serialized");throw p.getLogger(this).error("#toJSON()","Web map must be loaded before it can be serialized",this.loadError||this.loadStatus),e}return this._removeDanglingLayerRefs(),t={...t,origin:"web-map",restrictedWebMapWriting:!0,webmap:this},super.write(e,t)}async save(e){return this._debouncedSaveOperations(z.SAVE,e)}async saveAs(e,t){return this._debouncedSaveOperations(z.SAVE_AS,t,e)}async updateFrom(e,t){const r=this._updateFromInternal(e,t);this._updateFromPromise=r,await r;r===this._updateFromPromise&&(this._updateFromPromise=null)}getLayerJSONFromResourceInfo(e){const t=this.resourceInfo;return this._collectAllLayersJSON([...t?.baseMap?.baseMapLayers||[],...t?.operationalLayers||[],...this.basemap?.resourceInfo?.data?.baseMapLayers||[]]).find((t=>t.id===e.id))}async _saveImpl(e){e=e||{},this._validateItem();const t=import("./webdoc/support/saveUtils.js");await this._updateFromPromise,await this.load(),await this._loadLayerContainers(),await this._beforeSave(),await this._validateMap();const r=this.portalItem,i=w(r.itemUrl),o={origin:"web-map",messages:[],writtenProperties:[],url:i,portal:r.portal||W.getDefault(),portalItem:r,verifyItemRelativeUrls:i?{rootPath:i.path,writtenUrls:[]}:null,blockedRelativeUrls:[],resources:{toAdd:[],toUpdate:[],toKeep:[],pendingOperations:[]}},a=this.write({},o);return await Promise.all(o.resources.pendingOperations),this._validateJSONForWriting(o,e),await this._updateItemProperties(r),await this._updateItem(r,a,o),await Promise.all([this._updateItemThumbnail(),t.then((({saveResources:e})=>e(this._resourceReferences,o,null)))]),r}async _saveAsImpl(e,t){t=t||{};const r=this._getPortalItem(e),i=import("./webdoc/support/saveUtils.js");await this._updateFromPromise,await this.load(),await this._loadLayerContainers(),await this._beforeSave(),await this._validateMap();const o={origin:"web-map",messages:[],writtenProperties:[],url:null,portal:r.portal,portalItem:r,blockedRelativeUrls:[],resources:{toAdd:[],toUpdate:[],toKeep:[],pendingOperations:[]}},a=this.write({},o);await Promise.all(o.resources.pendingOperations),this._validateJSONForWriting(o,t),await this._updateItemPropertiesForSaveAs(r);const s=this._getThumbnailState();return await this._createItem(r,a,o,t)&&(this._resourceReferences.portalItem=r),this._restoreThumbnailFromState(s),await Promise.all([this._updateItemThumbnail(),i.then((({saveResources:e})=>e(this._resourceReferences,o,null)))]),r}_collectAllLayersJSON(e){return e.reduce(((e,t)=>(e.push(t),"GroupLayer"===t.layerType&&(e=e.concat(this._collectAllLayersJSON(t.layers||[]))),e)),[])}_writeLayers(e,t,r){t={...t,layerContainerType:r};return e.map((e=>X(e,"tables"===r?null:this.getLayerJSONFromResourceInfo(e),t))).filter(o).toArray()}_loadFromSource(){return this.resourceInfo?this._loadFromJSON(this.resourceInfo,{origin:"web-map"}):this.portalItem&&this.portalItem.id?this._loadFromItem(this.portalItem):Promise.resolve()}async _loadFromItem(e){if(await e.load().catch((e=>{throw new s("webmap:load-portal-item","Failed to load portal item",{error:e})})),"Web Map"!==e.type)throw new s("webmap:invalid-portal-item",`Invalid portal item type '${e.type}', expected 'Web Map'`,{type:e.type});const t=await e.fetchData();this.resourceInfo=t;const r={origin:"web-map",url:w(e.itemUrl),portal:e.portal||W.getDefault(),portalItem:e,readResourcePaths:[]};await this._readAndLoadFromJSON(t,r),this._resourceReferences={portalItem:e,paths:r.readResourcePaths??[]};const i=await te(this.initialViewProperties,e,p.getLogger(this));if(i){const e=this.initialViewProperties?.clone()??new ee;e.viewpoint=i,this.initialViewProperties=e}}_readAndLoadFromJSON(e,t){const r=this._validateJSON(e);return this.read(r,t),this._loadFromJSON(r,t)}_validateJSON(e){const t=re.parse(e.version||"","webmap");return oe.validate(t),e.version=`${t.major}.${t.minor}`,e}_loadFromJSON(e,t){const r={context:{...t,layerContainerType:"operational-layers"}};return this.portalItem&&(r.context.portal=this.portalItem.portal||W.getDefault()),import("./layers/support/layersCreator.js").then((({populateOperationalLayers:t})=>{const i=[],o=e.operationalLayers;o&&o.length&&i.push(t(this.layers,o,r));const a={...r,context:{...r.context,layerContainerType:"tables"},defaultLayerType:"ArcGISFeatureLayer"},s=e.tables;return s&&s.length&&i.push(t(this.tables,s,a)),c(i).then((()=>{}))}))}_removeDanglingLayerRefs(){const e=this.applicationProperties,t=e&&e.viewing&&e.viewing.search,r=e=>this.allLayers.some((t=>t.id===e));t&&t.layers&&(t.layers=t.layers.filter((e=>r(e.id)))),t&&t.tables&&(t.tables=t.tables.filter((e=>this.tables.some((t=>t.id===e.id)))));const i=e&&e.editing&&e.editing.locationTracking;i&&i.info&&!r(i.info.layerId)&&(e.editing=null);const o=this.presentation&&this.presentation.slides;o&&o.forEach((e=>{e.visibleLayers&&(e.visibleLayers=e.visibleLayers.filter((e=>r(e.id))))}))}async _validateMap(){if(!this.basemap?.baseLayers.length)throw new s("webmap:save","Map does not have a valid basemap with a base layer.");let e=null;if(await y((()=>{const t=G(this.initialViewProperties,this.basemap);return e=t.spatialReference,!t.updating})),!P(e,this.initialViewProperties.spatialReference))throw new s("webmap:save","The spatial reference of the basemap is not compatible with the one from the map.",{expected:this.initialViewProperties.spatialReference,actual:e})}_validateItem(){if(!this.portalItem)throw p.getLogger(this).error("save: requires the portalItem property to be set"),new s("webmap:portal-item-not-set","Portal item to save to has not been set on the WebMap");this._validateItemType(this.portalItem)}_validateItemType(e){if(e.type!==ae)throw new s("webmap:portal-item-wrong-type",`Portal item needs to have type "${ae}"`)}_loadLayerContainers(){const e=[];return this.basemap&&e.push(this.basemap.load()),this.ground&&e.push(this.ground.load()),c(e).then((()=>{}))}async _beforeSave(){const e=[];for(const t of this.allLayers)if("beforeSave"in t&&"function"==typeof t.beforeSave){const r=t.beforeSave();r&&e.push(r)}await c(e)}_loadAllLayers(){const e=this._getAllLayersAndTables().map((e=>e.load()));return c(e).then((()=>{}))}_getAllLayersAndTables(){return this.allLayers.concat(this.allTables)}_validateJSONForWriting(e,t){let r=(e.messages??[]).filter((e=>"error"===e.type)).map((e=>new s(e.name,e.message,e.details)));if(e.blockedRelativeUrls&&(r=r.concat(e.blockedRelativeUrls.map((e=>new s("url:unsupported",`Relative url '${e}' is not supported in Web Map`))))),t.ignoreUnsupported&&(r=r.filter((e=>"layer:unsupported"!==e.name&&"symbol:unsupported"!==e.name&&"symbol-layer:unsupported"!==e.name&&"property:unsupported"!==e.name&&"url:unsupported"!==e.name))),r.length>0)throw new s("webmap:save","Failed to save webmap due to unsupported or invalid content. See 'details.errors' for more detailed information",{errors:r})}async _updateItemProperties(e){e.extent=await this._getWGS84Extent(this.initialViewProperties.viewpoint.targetGeometry),await this._updateTypeKeywords(e)}async _updateItemPropertiesForSaveAs(e){N(e,me),N(e,_e),N(e,C.METADATA),N(e,ce),N(e,be),N(e,ge),N(e,we),N(e,fe),await this._updateItemProperties(e)}async _getWGS84Extent(e){const t=e.clone().normalize();let r;if(t.length>1)for(const i of t)r?i.width>r.width&&(r=i):r=i;else r=t[0];return this._projectToWGS84(r)}async _projectToWGS84(e){const t=e.spatialReference;if(t.isWGS84)return e.clone();if(t.isWebMercator)return L(e);const{getGeometryServiceURL:r}=await import("./portal/support/geometryServiceUtils.js"),i=await r(this.portalItem),o=new B;o.geometries=[e],o.outSpatialReference=O.WGS84;return(await x(i,o))[0]}async _updateTypeKeywords(e){E(e,ue),await this._loadAllLayers(),this._evalCollectorKeyword(e),this._evalDataEditingKeyword(e),this._evalOfflineKeyword(e),this._evalDeveloperBasemapKeyword(e),this._evalUtilityNetworkKeyword(e),e.typeKeywords&&(e.typeKeywords=e.typeKeywords.filter(((e,t,r)=>r.indexOf(e)===t)))}_evalCollectorKeyword(e){M(e,me)||M(e,we)||M(e,fe)||M(e,ge)||!this._hasEditableFeatureLayer()?N(e,he):E(e,he)}_evalDataEditingKeyword(e){this._hasEditableFeatureLayer()?E(e,de):N(e,de)}_evalOfflineKeyword(e){!M(e,ce)&&this._isOfflineCapableMap()?E(e,ye):N(e,ye)}_evalDeveloperBasemapKeyword(e){J(this.basemap)?E(e,ve):N(e,ve)}_evalUtilityNetworkKeyword(e){this.utilityNetworks?.length?E(e,Ae):N(e,Ae)}_hasEditableFeatureLayer(){return this._getAllLayersAndTables().some((e=>e.loaded&&R(e)&&e.capabilities.operations.supportsEditing&&e.editingEnabled&&("subtype-group"!==e.type||e.sublayers.some((e=>e.editingEnabled)))))}_isOfflineCapableMap(){return this._getAllLayersAndTables().filter((e=>"group"!==e.type)).every((e=>e.loaded&&this._isOfflineCapableLayer(e)))}_isFeatureCollectionLike(e){return T(e)||"map-notes"===e.type||"route"===e.type}_isOfflineCapableLayer(e){return R(e)&&e.capabilities.operations.supportsSync||this._isFeatureCollectionLike(e)&&!e.portalItem||("tile"===e.type||"vector-tile"===e.type)&&(e.capabilities.operations.supportsExportTiles||this._isExportableAGOLTileLayer(e)||D(e))&&e.spatialReference.equals(this.initialViewProperties.spatialReference)}_isExportableAGOLTileLayer(e){return"tile"===e.type&&(V(e.url)&&Ie.some((t=>e.url?.toLowerCase().includes("/"+t+"/"))))}async _updateItem(e,t,r){await e.update({data:t}),this._syncUpInstanceWithItem(e,t,r)}async _createItem(e,t,r,i){const o=this.portalItem,a={item:o,authenticated:!(!o?.id||!o.portal.user)},n=e.portal;await n.signIn();const{copyAllowed:l,itemReloaded:p}=await this._isCopyAllowed(a,n);if(a.authenticated||=p,!l)throw new s("webmap:save-as-copy-not-allowed","Owner of this map does not allow others to save a copy");const u=await this._initializeNewItem(e,a,t,i);return this.portalItem=e,this._syncUpInstanceWithItem(e,t,r),u}async _isCopyAllowed(e,t){const{item:r,authenticated:i}=e;return r?.id&&r.typeKeywords?.includes("useOnly")?r.portal.portalHostname!==t.portalHostname?{copyAllowed:!1,itemReloaded:!1}:(i||await r.reload(),{copyAllowed:"admin"===r.itemControl||"update"===r.itemControl,itemReloaded:!0}):{copyAllowed:!0,itemReloaded:!1}}async _initializeNewItem(e,t,r,i){const o=e.portal,{item:a}=t,{folder:s,copyAllResources:n}=i;let l=!1;if(n&&a?.id&&f(a.portal.url,o.url)){const{total:e}=await a.fetchResources();l=!!e}if(l){const t=await a.copy({copyResources:"all",folder:s});e.id=t.id,e.portal=t.portal;const i=e.toJSON();await e.load(),e.read(i),await e.update({data:r})}else await(o.user?.addItem({item:e,folder:s,data:r}));return l}_syncUpInstanceWithItem(e,t,r){m.prototype.read.call(this,{version:t.version,authoringApp:t.authoringApp,authoringAppVersion:t.authoringAppVersion},{origin:"web-map",ignoreDefaults:!0,url:e.itemUrl?w(e.itemUrl):void 0}),j(r),this.resourceInfo=t}async _updateItemThumbnail(){this.thumbnailUrl&&this._isOverridden("thumbnailUrl")&&(await(this.portalItem?.updateThumbnail({thumbnail:this.thumbnailUrl,filename:this._thumbnailFilename})),this._clearThumbnailOverride())}_getPortalItem(e){let t=k.from(e);return t.id&&(t=t.clone(),t.id=null),t.type||(t.type=ae),t.portal||(t.portal=W.getDefault()),this._validateItemType(t),t}async _updateFromInternal(e,t){if(t=t||{},await y((()=>e.ready)),this._updateInitialViewProperties(e,t),e.map===this)for(const r of e.allLayerViews)"visible"in r&&"visible"in r.layer&&r._isOverridden("visible")&&(r.layer.visible=r.visible),"featureEffect"in r&&"featureEffect"in r.layer&&r._isOverridden("featureEffect")&&(r.layer.featureEffect=r.featureEffect);await this._updateThumbnailUrl(e,t)}_updateInitialViewProperties(e,t){if(t.backgroundExcluded||(this.initialViewProperties.background=e.background?.clone()),this.initialViewProperties.spatialReference=e.spatialReference?.clone(),t.viewpointExcluded||(this.initialViewProperties.viewpoint=new i({rotation:e.rotation,scale:t.scalePreserved?e.scale:null,targetGeometry:this._getViewExtent(e)})),!t.widgetsExcluded)for(const r of e.persistableViewModels)r.updateWebDocument(this)}_getViewExtent(e){const t=e.center.clone().normalize(),r=e.extent.clone(),i=r.width/2;return r.xmin=t.x-i,r.xmax=t.x+i,r}async _updateThumbnailUrl(e,t){if(t.thumbnailExcluded)return;const r=Q(e,t.thumbnailSize),i=await e.takeScreenshot({format:"png",width:r.width,height:r.height});this._setAutoGeneratedThumbnail(i.dataUrl)}_setAutoGeneratedThumbnail(e){this.thumbnailUrl=e,this._thumbnailFilename=null}_clearThumbnailOverride(){this._clearOverride("thumbnailUrl"),this.clear("thumbnailUrl","user"),this._thumbnailFilename=null}_generateCustomThumbnailFilename(e){if(g(e)){const t=b(e),r=t&&t.mediaType,i=r&&le.get(r.toLowerCase())||null,o=`thumbnail${Date.now()}`;return i?`${o}.${i}`:o}return null}_getThumbnailState(){let e=this.thumbnailUrl;return e&&(e=this._isOverridden("thumbnailUrl")?e:_(e,"w","8192")),{thumbnailUrl:e,filename:this._thumbnailFilename}}_restoreThumbnailFromState(e){this.thumbnailUrl=e.thumbnailUrl,this._thumbnailFilename=e.filename}_getAuthoringPropsState(){return{authoringApp:this.authoringApp,authoringAppVersion:this.authoringAppVersion,isAuthoringAppSetByUser:this._isAuthoringAppSetByUser,isAuthoringAppVersionSetByUser:this._isAuthoringAppVersionSetByUser}}_restoreAuthoringPropsFromState(e){e.isAuthoringAppSetByUser?this.authoringApp=e.authoringApp:this._isAuthoringAppSetByUser=!1,e.isAuthoringAppVersionSetByUser?this.authoringAppVersion=e.authoringAppVersion:this._isAuthoringAppVersionSetByUser=!1}static fromJSON(e){const t=e;if(!t)throw new s("webmap:empty-resource","Expected a JSON resource but got nothing");return new this({resourceInfo:t})}};Se.VERSION=oe,e([v({type:Y,json:{write:!0}})],Se.prototype,"applicationProperties",void 0),e([v({type:String,json:{write:{allowNull:!0,ignoreOrigin:!0}}})],Se.prototype,"authoringApp",null),e([S("authoringApp")],Se.prototype,"writeAuthoringApp",null),e([v({type:String,json:{write:{allowNull:!0,ignoreOrigin:!0}}})],Se.prototype,"authoringAppVersion",null),e([S("authoringAppVersion")],Se.prototype,"writeAuthoringAppVersion",null),e([v({json:{read:{source:"baseMap"},write:{target:"baseMap"}}})],Se.prototype,"basemap",void 0),e([v({type:se,json:{write:{overridePolicy:e=>({enabled:!!(e&&e.length>0),ignoreOrigin:!0})}}})],Se.prototype,"bookmarks",void 0),e([v({type:K,json:{read:{source:"mapFloorInfo"},write:{target:"mapFloorInfo"}}})],Se.prototype,"floorInfo",void 0),e([v({type:$,json:{write:!0}})],Se.prototype,"geotriggersInfo",void 0),e([v({type:ee,nonNullable:!0,json:{read:{source:["background","initialState.viewpoint","mapRangeInfo","spatialReference"]},write:{ignoreOrigin:!0,target:{background:{type:ie},"initialState.viewpoint":{type:i},mapRangeInfo:{type:q},spatialReference:{type:O}}}}})],Se.prototype,"initialViewProperties",void 0),e([A("initialViewProperties")],Se.prototype,"readInitialViewProperties",null),e([S("initialViewProperties")],Se.prototype,"writeInitialViewProperties",null),e([v({json:{read:!1,write:{target:"operationalLayers",ignoreOrigin:!0}}})],Se.prototype,"layers",void 0),e([S("layers")],Se.prototype,"writeLayers",null),e([v({type:k})],Se.prototype,"portalItem",void 0),e([v({json:{write:!0}})],Se.prototype,"presentation",void 0),e([v()],Se.prototype,"resourceInfo",void 0),e([v({readOnly:!0,type:re,json:{read:{source:"version"},write:{allowNull:!0,ignoreOrigin:!0,target:"version",isRequired:!0}}})],Se.prototype,"sourceVersion",void 0),e([A("sourceVersion")],Se.prototype,"readSourceVersion",null),e([S("sourceVersion")],Se.prototype,"writeSourceVersion",null),e([v({json:{read:!1,write:{ignoreOrigin:!0}}})],Se.prototype,"tables",void 0),e([S("tables")],Se.prototype,"writeTables",null),e([v()],Se.prototype,"thumbnailUrl",null),e([v({type:H,json:{write:!0}})],Se.prototype,"widgets",void 0),e([v({type:ne,json:{read:!0,write:!0}})],Se.prototype,"utilityNetworks",void 0),Se=e([I("esri.WebMap")],Se);const je=Se;export{je as default};
|
|
5
|
+
import{_ as e}from"./chunks/tslib.es6.js";import{version as t}from"./kernel.js";import r from"./Map.js";import i from"./Viewpoint.js";import{isSome as o}from"./core/arrayUtils.js";import a from"./core/Collection.js";import s from"./core/Error.js";import n from"./core/Loadable.js";import{loadAll as l}from"./core/loadAll.js";import p from"./core/Logger.js";import{MultiOriginJSONMixin as m,MultiOriginJSONSupport as u}from"./core/MultiOriginJSONSupport.js";import{EsriPromiseMixin as h}from"./core/Promise.js";import{debounce as d}from"./core/promiseUtils.js";import{whenOnce as c}from"./core/reactiveUtils.js";import{urlToObject as y,hasSameCanonicalArcGISOnlinePortal as w,isDataProtocol as f,dataComponents as g,addQueryParameter as b}from"./core/urlUtils.js";import{property as _}from"./core/accessorSupport/decorators/property.js";import"./core/accessorSupport/ensureType.js";import"./core/has.js";import{reader as v}from"./core/accessorSupport/decorators/reader.js";import{subclass as A}from"./core/accessorSupport/decorators/subclass.js";import{writer as S}from"./core/accessorSupport/decorators/writer.js";import{updateOrigins as I}from"./core/accessorSupport/originUtils.js";import{readLoadable as j}from"./core/accessorSupport/read.js";import P from"./geometry/SpatialReference.js";import{equals as U}from"./geometry/support/spatialReferenceUtils.js";import{webMercatorToGeographic as O}from"./geometry/support/webMercatorUtils.js";import{isServerOrServicesAGOLUrl as L}from"./layers/support/arcgisLayerUrl.js";import{isLayerWithFeatureLayerSource as V,isFeatureCollectionLayer as R}from"./layers/support/layerUtils.js";import T from"./networks/UtilityNetwork.js";import F from"./portal/Portal.js";import W from"./portal/PortalItem.js";import{removeTypeKeyword as k,addTypeKeyword as N,hasTypeKeyword as E,TypeKeyword as M}from"./portal/support/portalItemUtils.js";import{project as C}from"./rest/geometryService/project.js";import x from"./rest/support/ProjectParameters.js";import{hasDeveloperBasemapLayer as B,isDeveloperBasemapLayer as J,findSpatialReference as D}from"./support/basemapUtils.js";import G from"./support/MapFloorInfo.js";import K from"./webdoc/GeotriggersInfo.js";import{SaveOperationType as $}from"./webdoc/interfaces.js";import z from"./webdoc/RangeInfo.js";import q from"./webdoc/Widgets.js";import{getOptimalThumbnailSize as H}from"./webdoc/support/thumbnailUtils.js";import{getLayerJSON as Q}from"./webdoc/support/writeUtils.js";import X from"./webmap/ApplicationProperties.js";import Y from"./webmap/Bookmark.js";import Z from"./webmap/InitialViewProperties.js";import{computeInitialViewpoint as ee}from"./webmap/initialViewPropertiesUtils.js";import{Version as te}from"./webmap/Version.js";import re from"./webmap/background/ColorBackground.js";const ie=new te(2,28),oe="Web Map",ae=a.ofType(Y),se=a.ofType(T),ne=new Map;ne.set("image/jpeg","jpeg"),ne.set("image/jpg","jpg"),ne.set("image/png","png"),ne.set("image/gif","gif");const le="ArcGIS Pro",pe=M.JSAPI,me="CollectorDisabled",ue="Collector",he="Data Editing",de="OfflineDisabled",ce="Offline",ye="Workforce Project",we="Workforce Worker",fe="Workforce Dispatcher",ge="Offline Map Areas",be="FieldMapsDisabled",_e=M.DEVELOPER_BASEMAP,ve="UtilityNetwork",Ae=["NatGeo_World_Map","Ocean_Basemap","USA_Topo_Maps","World_Imagery","World_Street_Map","World_Terrain_Base","World_Topo_Map","World_Hillshade","Canvas/World_Light_Gray_Base","Canvas/World_Light_Gray_Reference","Canvas/World_Dark_Gray_Base","Canvas/World_Dark_Gray_Reference","Ocean/World_Ocean_Base","Ocean/World_Ocean_Reference","Reference/World_Boundaries_and_Places","Reference/World_Reference_Overlay","Reference/World_Transportation"].map((e=>e.toLowerCase()));let Se=class extends(m(n.LoadableMixin(h(r)))){constructor(e){super(e),this._isAuthoringAppSetByUser=!1,this._isAuthoringAppVersionSetByUser=!1,this._thumbnailFilename=null,this._updateFromPromise=null,this._resourceReferences={portalItem:null,paths:[]},this.applicationProperties=null,this.bookmarks=new ae,this.floorInfo=null,this.geotriggersInfo=null,this.initialViewProperties=new Z,this.portalItem=null,this.presentation=null,this.sourceVersion=null,this.widgets=null,this.utilityNetworks=null,this._debouncedSaveOperations=d((async(e,t,r)=>{switch(e){case $.SAVE:return this._saveImpl(t);case $.SAVE_AS:return this._saveAsImpl(r,t)}})),this.authoringApp=this.authoringAppVersion=null,this._isAuthoringAppSetByUser=this._isAuthoringAppVersionSetByUser=!1}destroy(){const e=this.portalItem;this.portalItem=null,e?.destroy()}initialize(){if(this.when().catch((e=>{p.getLogger(this).error("#load()","Failed to load web map",e)})),this.resourceInfo){let t;try{t=this._validateJSON(this.resourceInfo)}catch(e){return void this.addResolvingPromise(Promise.reject(e))}this.read(t)}}set authoringApp(e){this._isAuthoringAppSetByUser=!0,this._set("authoringApp",e)}writeAuthoringApp(e,t){e&&this._isAuthoringAppSetByUser?t.authoringApp=e:t.authoringApp=pe}set authoringAppVersion(e){this._isAuthoringAppVersionSetByUser=!0,this._set("authoringAppVersion",e)}writeAuthoringAppVersion(e,r){e&&this._isAuthoringAppVersionSetByUser?r.authoringAppVersion=e:r.authoringAppVersion=t}readInitialViewProperties(e,t){const r=new Z;t.background&&(r.background=re.fromJSON(t.background));const o=t.initialState?.viewpoint;if(o){if(o.rotation){te.parse(t.version||"","webmap").lessThan(2,20)&&t.authoringApp===le&&(o.rotation*=-1)}r.viewpoint=i.fromJSON(o)}return t.mapRangeInfo&&(r.rangeInfo=z.fromJSON(t.mapRangeInfo)),t.spatialReference&&(r.spatialReference=P.fromJSON(t.spatialReference)),r}writeInitialViewProperties(e,t,r,i){if(!e)return;const o=e.background;o&&o.color&&(t.background=o.write({},i)),e.viewpoint&&(t.initialState={viewpoint:e.viewpoint.write({},i)}),e.rangeInfo&&(t.mapRangeInfo=e.rangeInfo.toJSON(i)),e.spatialReference&&(t.spatialReference=e.spatialReference.write({},i))}writeLayers(e,t,r,i){t[r]=this._writeLayers(e,i,"operational-layers")}readSourceVersion(e,t){const[r,i]=t.version.split(".");return new te(parseInt(r,10),parseInt(i,10))}writeSourceVersion(e,t,r){t[r]=`${ie.major}.${ie.minor}`}writeTables(e,t,r,i){const o=this._writeLayers(e,i,"tables");o.length&&(t[r]=o)}get thumbnailUrl(){return this.portalItem&&this.portalItem.thumbnailUrl||null}set thumbnailUrl(e){e?(this._override("thumbnailUrl",e),this._thumbnailFilename=this._generateCustomThumbnailFilename(e)):this._clearThumbnailOverride()}load(e){return this.addResolvingPromise(this._loadFromSource()),Promise.resolve(this)}loadAll(){return l(this,(e=>{e(this.ground,this.basemap,this.layers,this.tables)}))}read(e,t){t={...t,origin:"web-map"};const r=this._getAuthoringPropsState();j(this,e,(t=>super.read(e,t)),t),this._restoreAuthoringPropsFromState(r)}write(e,t){if("loaded"!==this.loadStatus){const e=new s("webmap:not-loaded","Web map must be loaded before it can be serialized");throw p.getLogger(this).error("#toJSON()","Web map must be loaded before it can be serialized",this.loadError||this.loadStatus),e}return this._removeDanglingLayerRefs(),t={...t,origin:"web-map",restrictedWebMapWriting:!0,webmap:this},super.write(e,t)}async save(e){return this._debouncedSaveOperations($.SAVE,e)}async saveAs(e,t){return this._debouncedSaveOperations($.SAVE_AS,t,e)}async updateFrom(e,t){const r=this._updateFromInternal(e,t);this._updateFromPromise=r,await r;r===this._updateFromPromise&&(this._updateFromPromise=null)}getLayerJSONFromResourceInfo(e){const t=this.resourceInfo;return this._collectAllLayersJSON([...t?.baseMap?.baseMapLayers||[],...t?.operationalLayers||[],...this.basemap?.resourceInfo?.data?.baseMapLayers||[]]).find((t=>t.id===e.id))}async _saveImpl(e){e=e||{},this._validateItem();const t=import("./webdoc/support/saveUtils.js");await this._updateFromPromise,await this.load(),await this._loadLayerContainers(),await this._beforeSave(),await this._validateMap();const r=this.portalItem,i=y(r.itemUrl),o={origin:"web-map",messages:[],writtenProperties:[],url:i,portal:r.portal||F.getDefault(),portalItem:r,verifyItemRelativeUrls:i?{rootPath:i.path,writtenUrls:[]}:null,blockedRelativeUrls:[],resources:{toAdd:[],toUpdate:[],toKeep:[],pendingOperations:[]}},a=this.write({},o);return await Promise.all(o.resources.pendingOperations),this._validateJSONForWriting(o,e),await this._updateItemProperties(r),await this._updateItem(r,a,o),await Promise.all([this._updateItemThumbnail(),t.then((({saveResources:e})=>e(this._resourceReferences,o,null)))]),r}async _saveAsImpl(e,t){t=t||{};const r=this._getPortalItem(e),i=import("./webdoc/support/saveUtils.js");await this._updateFromPromise,await this.load(),await this._loadLayerContainers(),await this._beforeSave(),await this._validateMap();const o={origin:"web-map",messages:[],writtenProperties:[],url:null,portal:r.portal,portalItem:r,blockedRelativeUrls:[],resources:{toAdd:[],toUpdate:[],toKeep:[],pendingOperations:[]}},a=this.write({},o);await Promise.all(o.resources.pendingOperations),this._validateJSONForWriting(o,t),await this._updateItemPropertiesForSaveAs(r);const s=this._getThumbnailState();return await this._createItem(r,a,o,t)&&(this._resourceReferences.portalItem=r),this._restoreThumbnailFromState(s),await Promise.all([this._updateItemThumbnail(),i.then((({saveResources:e})=>e(this._resourceReferences,o,null)))]),r}_collectAllLayersJSON(e){return e.reduce(((e,t)=>(e.push(t),"GroupLayer"===t.layerType&&(e=e.concat(this._collectAllLayersJSON(t.layers||[]))),e)),[])}_writeLayers(e,t,r){t={...t,layerContainerType:r};return e.map((e=>Q(e,"tables"===r?null:this.getLayerJSONFromResourceInfo(e),t))).filter(o).toArray()}_loadFromSource(){return this.resourceInfo?this._loadFromJSON(this.resourceInfo,{origin:"web-map"}):this.portalItem&&this.portalItem.id?this._loadFromItem(this.portalItem):Promise.resolve()}async _loadFromItem(e){if(await e.load().catch((e=>{throw new s("webmap:load-portal-item","Failed to load portal item",{error:e})})),"Web Map"!==e.type)throw new s("webmap:invalid-portal-item",`Invalid portal item type '${e.type}', expected 'Web Map'`,{type:e.type});const t=await e.fetchData();this.resourceInfo=t;const r={origin:"web-map",url:y(e.itemUrl),portal:e.portal||F.getDefault(),portalItem:e,readResourcePaths:[]};await this._readAndLoadFromJSON(t,r),this._resourceReferences={portalItem:e,paths:r.readResourcePaths??[]};const i=await ee(this.initialViewProperties,e,p.getLogger(this));if(i){const e=this.initialViewProperties?.clone()??new Z;e.viewpoint=i,this.initialViewProperties=e}}_readAndLoadFromJSON(e,t){const r=this._validateJSON(e);return this.read(r,t),this._loadFromJSON(r,t)}_validateJSON(e){const t=te.parse(e.version||"","webmap");return ie.validate(t),e.version=`${t.major}.${t.minor}`,e}async _loadFromJSON(e,t){const r={context:{...t,layerContainerType:"operational-layers"}};return this.portalItem&&(r.context.portal=this.portalItem.portal||F.getDefault()),import("./layers/support/layersCreator.js").then((async({populateOperationalLayers:t})=>{const i=[],o=e.operationalLayers;o&&o.length&&i.push(t(this.layers,o,r));const a={...r,context:{...r.context,layerContainerType:"tables"},defaultLayerType:"ArcGISFeatureLayer"},s=e.tables;s&&s.length&&i.push(t(this.tables,s,a)),await Promise.allSettled(i)}))}_removeDanglingLayerRefs(){const e=this.applicationProperties,t=e&&e.viewing&&e.viewing.search,r=e=>this.allLayers.some((t=>t.id===e));t&&t.layers&&(t.layers=t.layers.filter((e=>r(e.id)))),t&&t.tables&&(t.tables=t.tables.filter((e=>this.tables.some((t=>t.id===e.id)))));const i=e&&e.editing&&e.editing.locationTracking;i&&i.info&&!r(i.info.layerId)&&(e.editing=null);const o=this.presentation&&this.presentation.slides;o&&o.forEach((e=>{e.visibleLayers&&(e.visibleLayers=e.visibleLayers.filter((e=>r(e.id))))}))}async _validateMap(){if(!this.basemap?.baseLayers.length)throw new s("webmap:save","Map does not have a valid basemap with a base layer.");let e=null;if(await c((()=>{const t=D(this.initialViewProperties,this.basemap);return e=t.spatialReference,!t.updating})),!U(e,this.initialViewProperties.spatialReference))throw new s("webmap:save","The spatial reference of the basemap is not compatible with the one from the map.",{expected:this.initialViewProperties.spatialReference,actual:e})}_validateItem(){if(!this.portalItem)throw p.getLogger(this).error("save: requires the portalItem property to be set"),new s("webmap:portal-item-not-set","Portal item to save to has not been set on the WebMap");this._validateItemType(this.portalItem)}_validateItemType(e){if(e.type!==oe)throw new s("webmap:portal-item-wrong-type",`Portal item needs to have type "${oe}"`)}async _loadLayerContainers(){const e=[];this.basemap&&e.push(this.basemap.load()),this.ground&&e.push(this.ground.load()),await Promise.allSettled(e)}async _beforeSave(){const e=[];for(const t of this.allLayers)if("beforeSave"in t&&"function"==typeof t.beforeSave){const r=t.beforeSave();r&&e.push(r)}await Promise.allSettled(e)}async _loadAllLayers(){const e=this._getAllLayersAndTables().items.map((e=>e.load()));await Promise.allSettled(e)}_getAllLayersAndTables(){return this.allLayers.concat(this.allTables)}_validateJSONForWriting(e,t){let r=(e.messages??[]).filter((e=>"error"===e.type)).map((e=>new s(e.name,e.message,e.details)));if(e.blockedRelativeUrls&&(r=r.concat(e.blockedRelativeUrls.map((e=>new s("url:unsupported",`Relative url '${e}' is not supported in Web Map`))))),t.ignoreUnsupported&&(r=r.filter((e=>"layer:unsupported"!==e.name&&"symbol:unsupported"!==e.name&&"symbol-layer:unsupported"!==e.name&&"property:unsupported"!==e.name&&"url:unsupported"!==e.name))),r.length>0)throw new s("webmap:save","Failed to save webmap due to unsupported or invalid content. See 'details.errors' for more detailed information",{errors:r})}async _updateItemProperties(e){e.extent=await this._getWGS84Extent(this.initialViewProperties.viewpoint.targetGeometry),await this._updateTypeKeywords(e)}async _updateItemPropertiesForSaveAs(e){k(e,me),k(e,be),k(e,M.METADATA),k(e,de),k(e,ge),k(e,fe),k(e,ye),k(e,we),await this._updateItemProperties(e)}async _getWGS84Extent(e){const t=e.clone().normalize();let r;if(t.length>1)for(const i of t)r?i.width>r.width&&(r=i):r=i;else r=t[0];return this._projectToWGS84(r)}async _projectToWGS84(e){const t=e.spatialReference;if(t.isWGS84)return e.clone();if(t.isWebMercator)return O(e);const{getGeometryServiceURL:r}=await import("./portal/support/geometryServiceUtils.js"),i=await r(this.portalItem),o=new x;o.geometries=[e],o.outSpatialReference=P.WGS84;return(await C(i,o))[0]}async _updateTypeKeywords(e){N(e,pe),await this._loadAllLayers(),this._evalCollectorKeyword(e),this._evalDataEditingKeyword(e),this._evalOfflineKeyword(e),this._evalDeveloperBasemapKeyword(e),this._evalUtilityNetworkKeyword(e),e.typeKeywords&&(e.typeKeywords=e.typeKeywords.filter(((e,t,r)=>r.indexOf(e)===t)))}_evalCollectorKeyword(e){E(e,me)||E(e,ye)||E(e,we)||E(e,fe)||!this._hasEditableFeatureLayer()?k(e,ue):N(e,ue)}_evalDataEditingKeyword(e){this._hasEditableFeatureLayer()?N(e,he):k(e,he)}_evalOfflineKeyword(e){!E(e,de)&&this._isOfflineCapableMap()?N(e,ce):k(e,ce)}_evalDeveloperBasemapKeyword(e){B(this.basemap)?N(e,_e):k(e,_e)}_evalUtilityNetworkKeyword(e){this.utilityNetworks?.length?N(e,ve):k(e,ve)}_hasEditableFeatureLayer(){return this._getAllLayersAndTables().some((e=>e.loaded&&V(e)&&e.capabilities.operations.supportsEditing&&e.editingEnabled&&("subtype-group"!==e.type||e.sublayers.some((e=>e.editingEnabled)))))}_isOfflineCapableMap(){return this._getAllLayersAndTables().filter((e=>"group"!==e.type)).every((e=>e.loaded&&this._isOfflineCapableLayer(e)))}_isFeatureCollectionLike(e){return R(e)||"map-notes"===e.type||"route"===e.type}_isOfflineCapableLayer(e){return V(e)&&e.capabilities.operations.supportsSync||this._isFeatureCollectionLike(e)&&!e.portalItem||("tile"===e.type||"vector-tile"===e.type)&&(e.capabilities.operations.supportsExportTiles||this._isExportableAGOLTileLayer(e)||J(e))&&e.spatialReference.equals(this.initialViewProperties.spatialReference)}_isExportableAGOLTileLayer(e){return"tile"===e.type&&(L(e.url)&&Ae.some((t=>e.url?.toLowerCase().includes("/"+t+"/"))))}async _updateItem(e,t,r){await e.update({data:t}),this._syncUpInstanceWithItem(e,t,r)}async _createItem(e,t,r,i){const o=this.portalItem,a={item:o,authenticated:!(!o?.id||!o.portal.user)},n=e.portal;await n.signIn();const{copyAllowed:l,itemReloaded:p}=await this._isCopyAllowed(a,n);if(a.authenticated||=p,!l)throw new s("webmap:save-as-copy-not-allowed","Owner of this map does not allow others to save a copy");const m=await this._initializeNewItem(e,a,t,i);return this.portalItem=e,this._syncUpInstanceWithItem(e,t,r),m}async _isCopyAllowed(e,t){const{item:r,authenticated:i}=e;return r?.id&&r.typeKeywords?.includes("useOnly")?r.portal.portalHostname!==t.portalHostname?{copyAllowed:!1,itemReloaded:!1}:(i||await r.reload(),{copyAllowed:"admin"===r.itemControl||"update"===r.itemControl,itemReloaded:!0}):{copyAllowed:!0,itemReloaded:!1}}async _initializeNewItem(e,t,r,i){const o=e.portal,{item:a}=t,{folder:s,copyAllResources:n}=i;let l=!1;if(n&&a?.id&&w(a.portal.url,o.url)){const{total:e}=await a.fetchResources();l=!!e}if(l){const t=await a.copy({copyResources:"all",folder:s});e.id=t.id,e.portal=t.portal;const i=e.toJSON();await e.load(),e.read(i),await e.update({data:r})}else await(o.user?.addItem({item:e,folder:s,data:r}));return l}_syncUpInstanceWithItem(e,t,r){u.prototype.read.call(this,{version:t.version,authoringApp:t.authoringApp,authoringAppVersion:t.authoringAppVersion},{origin:"web-map",ignoreDefaults:!0,url:e.itemUrl?y(e.itemUrl):void 0}),I(r),this.resourceInfo=t}async _updateItemThumbnail(){this.thumbnailUrl&&this._isOverridden("thumbnailUrl")&&(await(this.portalItem?.updateThumbnail({thumbnail:this.thumbnailUrl,filename:this._thumbnailFilename})),this._clearThumbnailOverride())}_getPortalItem(e){let t=W.from(e);return t.id&&(t=t.clone(),t.id=null),t.type||(t.type=oe),t.portal||(t.portal=F.getDefault()),this._validateItemType(t),t}async _updateFromInternal(e,t){if(t=t||{},await c((()=>e.ready)),this._updateInitialViewProperties(e,t),e.map===this)for(const r of e.allLayerViews)"visible"in r&&"visible"in r.layer&&r._isOverridden("visible")&&(r.layer.visible=r.visible),"featureEffect"in r&&"featureEffect"in r.layer&&r._isOverridden("featureEffect")&&(r.layer.featureEffect=r.featureEffect);await this._updateThumbnailUrl(e,t)}_updateInitialViewProperties(e,t){if(t.backgroundExcluded||(this.initialViewProperties.background=e.background?.clone()),this.initialViewProperties.spatialReference=e.spatialReference?.clone(),t.viewpointExcluded||(this.initialViewProperties.viewpoint=new i({rotation:e.rotation,scale:t.scalePreserved?e.scale:null,targetGeometry:this._getViewExtent(e)})),!t.widgetsExcluded)for(const r of e.persistableViewModels)r.updateWebDocument(this)}_getViewExtent(e){const t=e.center.clone().normalize(),r=e.extent.clone(),i=r.width/2;return r.xmin=t.x-i,r.xmax=t.x+i,r}async _updateThumbnailUrl(e,t){if(t.thumbnailExcluded)return;const r=H(e,t.thumbnailSize),i=await e.takeScreenshot({format:"png",width:r.width,height:r.height});this._setAutoGeneratedThumbnail(i.dataUrl)}_setAutoGeneratedThumbnail(e){this.thumbnailUrl=e,this._thumbnailFilename=null}_clearThumbnailOverride(){this._clearOverride("thumbnailUrl"),this.clear("thumbnailUrl","user"),this._thumbnailFilename=null}_generateCustomThumbnailFilename(e){if(f(e)){const t=g(e),r=t&&t.mediaType,i=r&&ne.get(r.toLowerCase())||null,o=`thumbnail${Date.now()}`;return i?`${o}.${i}`:o}return null}_getThumbnailState(){let e=this.thumbnailUrl;return e&&(e=this._isOverridden("thumbnailUrl")?e:b(e,"w","8192")),{thumbnailUrl:e,filename:this._thumbnailFilename}}_restoreThumbnailFromState(e){this.thumbnailUrl=e.thumbnailUrl,this._thumbnailFilename=e.filename}_getAuthoringPropsState(){return{authoringApp:this.authoringApp,authoringAppVersion:this.authoringAppVersion,isAuthoringAppSetByUser:this._isAuthoringAppSetByUser,isAuthoringAppVersionSetByUser:this._isAuthoringAppVersionSetByUser}}_restoreAuthoringPropsFromState(e){e.isAuthoringAppSetByUser?this.authoringApp=e.authoringApp:this._isAuthoringAppSetByUser=!1,e.isAuthoringAppVersionSetByUser?this.authoringAppVersion=e.authoringAppVersion:this._isAuthoringAppVersionSetByUser=!1}static fromJSON(e){const t=e;if(!t)throw new s("webmap:empty-resource","Expected a JSON resource but got nothing");return new this({resourceInfo:t})}};Se.VERSION=ie,e([_({type:X,json:{write:!0}})],Se.prototype,"applicationProperties",void 0),e([_({type:String,json:{write:{allowNull:!0,ignoreOrigin:!0}}})],Se.prototype,"authoringApp",null),e([S("authoringApp")],Se.prototype,"writeAuthoringApp",null),e([_({type:String,json:{write:{allowNull:!0,ignoreOrigin:!0}}})],Se.prototype,"authoringAppVersion",null),e([S("authoringAppVersion")],Se.prototype,"writeAuthoringAppVersion",null),e([_({json:{read:{source:"baseMap"},write:{target:"baseMap"}}})],Se.prototype,"basemap",void 0),e([_({type:ae,json:{write:{overridePolicy:e=>({enabled:!!(e&&e.length>0),ignoreOrigin:!0})}}})],Se.prototype,"bookmarks",void 0),e([_({type:G,json:{read:{source:"mapFloorInfo"},write:{target:"mapFloorInfo"}}})],Se.prototype,"floorInfo",void 0),e([_({type:K,json:{write:!0}})],Se.prototype,"geotriggersInfo",void 0),e([_({type:Z,nonNullable:!0,json:{read:{source:["background","initialState.viewpoint","mapRangeInfo","spatialReference"]},write:{ignoreOrigin:!0,target:{background:{type:re},"initialState.viewpoint":{type:i},mapRangeInfo:{type:z},spatialReference:{type:P}}}}})],Se.prototype,"initialViewProperties",void 0),e([v("initialViewProperties")],Se.prototype,"readInitialViewProperties",null),e([S("initialViewProperties")],Se.prototype,"writeInitialViewProperties",null),e([_({json:{read:!1,write:{target:"operationalLayers",ignoreOrigin:!0}}})],Se.prototype,"layers",void 0),e([S("layers")],Se.prototype,"writeLayers",null),e([_({type:W})],Se.prototype,"portalItem",void 0),e([_({json:{write:!0}})],Se.prototype,"presentation",void 0),e([_()],Se.prototype,"resourceInfo",void 0),e([_({readOnly:!0,type:te,json:{read:{source:"version"},write:{allowNull:!0,ignoreOrigin:!0,target:"version",isRequired:!0}}})],Se.prototype,"sourceVersion",void 0),e([v("sourceVersion")],Se.prototype,"readSourceVersion",null),e([S("sourceVersion")],Se.prototype,"writeSourceVersion",null),e([_({json:{read:!1,write:{ignoreOrigin:!0}}})],Se.prototype,"tables",void 0),e([S("tables")],Se.prototype,"writeTables",null),e([_()],Se.prototype,"thumbnailUrl",null),e([_({type:q,json:{write:!0}})],Se.prototype,"widgets",void 0),e([_({type:se,json:{read:!0,write:!0}})],Se.prototype,"utilityNetworks",void 0),Se=e([A("esri.WebMap")],Se);const Ie=Se;export{Ie as default};
|