@vertigis/arcgis-extensions 34.2.2 → 34.3.1

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.
Files changed (41) hide show
  1. package/docs/html/assets/js/search.js +1 -1
  2. package/docs/html/classes/mapping__layerextension.layerextension.html +3 -0
  3. package/docs/html/classes/mapping_mapextension.mapextension.html +58 -58
  4. package/docs/html/classes/mapping_mapimagelayerextension.mapimagelayerextension.html +5 -5
  5. package/docs/html/classes/mapping_support_defaultlayerextensionfactory.defaultlayerextensionfactory.html +3 -3
  6. package/docs/html/classes/mapping_unsupportedlayerextension.unsupportedlayerextension.html +3442 -0
  7. package/docs/html/index.html +3 -0
  8. package/docs/html/interfaces/mapping_mapextension.mapextensionproperties.html +21 -21
  9. package/docs/html/interfaces/mapping_mapextension.tableextensioncollection.html +3 -3
  10. package/docs/html/interfaces/portal_drawinginfo.drawinginfo-1.html +7 -7
  11. package/docs/html/interfaces/portal_layerdefinition.fieldoverride.html +3 -3
  12. package/docs/html/interfaces/portal_layerdefinition.layerdefinition-1.html +48 -48
  13. package/docs/html/interfaces/portal_layerdefinition.layerdefinitiondefaults.html +8 -8
  14. package/docs/html/interfaces/portal_layerdefinition.layertimeinfo.html +9 -9
  15. package/docs/html/interfaces/portal_layerdefinition.orderbyclause.html +3 -3
  16. package/docs/html/interfaces/portal_layerdefinition.timeinfoexportoptions.html +4 -4
  17. package/docs/html/modules/mapping_mapextension.html +5 -5
  18. package/docs/html/modules/mapping_unsupportedlayerextension.html +130 -0
  19. package/docs/html/modules/portal_drawinginfo.drawinginfo.html +2 -2
  20. package/docs/html/modules/portal_layerdefinition.html +2 -2
  21. package/docs/html/modules/portal_layerdefinition.layerdefinitioncapabilities.html +6 -6
  22. package/docs/html/modules/utilities__layers.html +16 -16
  23. package/docs/html/modules/utilities_extensions.html +14 -14
  24. package/docs/html/modules/version.html +1 -1
  25. package/docs/html/modules.html +4 -0
  26. package/mapping/MapExtension.js +1 -1
  27. package/mapping/MapImageLayerExtension.js +1 -1
  28. package/mapping/UnsupportedLayerExtension.d.ts +15 -0
  29. package/mapping/UnsupportedLayerExtension.js +1 -0
  30. package/mapping/support/DefaultLayerExtensionFactory.js +1 -1
  31. package/package.json +3 -3
  32. package/portal/DrawingInfo.js +1 -1
  33. package/portal/LayerBase.js +1 -1
  34. package/portal/LayerDefinition.js +1 -1
  35. package/support/_query.js +1 -1
  36. package/tasks/identify/FeatureLayer3DHitTestIdentifyProvider.js +1 -1
  37. package/utilities/_layers.d.ts +8 -9
  38. package/utilities/_layers.js +1 -1
  39. package/utilities/extensions.js +1 -1
  40. package/version.d.ts +1 -1
  41. package/version.js +1 -1
@@ -1 +1 @@
1
- import{__decorate}from"tslib";import EsriViewpoint from"@arcgis/core/Viewpoint";import{ArgumentError}from"../ArgumentError.js";import{EntityBase}from"../Entity.js";import{InvalidOperationError}from"../InvalidOperationError.js";import{isBasemapExtension,isBookmark,isGroundExtension,isLayerPreset,isMenu,isTableExtension,ItemType}from"../ItemType.js";import{TableExtension}from"../data/TableExtension.js";import{LayerPreset}from"../layer-preset/LayerPreset.js";import{Menu}from"../menus/Menu.js";import{toEsriApiGeometry}from"../portal/Geometry.js";import{WebMap as WebMapJson}from"../portal/WebMap.js";import{WebScene as WebSceneJson}from"../portal/WebScene.js";import{resolveRelativeHrefs}from"../portal/_utils.js";import{DefaultArcGISRequestHelper}from"../support/ArcGISRequestHelper.js";import{FormatSettings}from"../support/FormatSettings.js";import{InitializableCollectionProxy}from"../support/InitializableCollectionProxy.js";import{ReadOnlyInitializableCollection}from"../support/ReadOnlyInitializableCollection.js";import{serializable}from"../support/Serializable.js";import{WellKnownBasemap}from"../support/esri.js";import{ReadOnlyCollection}from"../utilities/ReadOnlyCollection.js";import{basemapsAreEquivalent,createStandardBasemap,isStandardBasemap}from"../utilities/basemaps.js";import{checkArg}from"../utilities/checkArg.js";import{Collection,compare}from"../utilities/collection.js";import{load}from"../utilities/esri.js";import{isGroupLayerExtension}from"../utilities/extensions.js";import{project}from"../utilities/geometry.js";import{find}from"../utilities/iterable.js";import{layersAreEquivalent}from"../utilities/layers.js";import{getLogger}from"../utilities/log.js";import{getMapSpatialReference,isMap,isWebMap,isWebScene}from"../utilities/mapping.js";import{toPortalItem as toPortalItemBase}from"../utilities/portal.js";import{parallelEach}from"../utilities/promise.js";import{onCollectionPropertyChange,onEach}from"../utilities/watch.js";import{BasemapExtension}from"./BasemapExtension.js";import{Bookmark}from"./Bookmark.js";import{GroundExtension}from"./GroundExtension.js";import{MapConstraints}from"./MapConstraints.js";import{_assignLayerExtensions,LayerExtension}from"./_LayerExtension.js";import{LayerExtensionCollectionBase}from"./support/_LayerExtensionCollection.js";const log=getLogger("MapExtension");let MapExtension=class extends EntityBase{constructor(e){var t;super(e),this.isSwitchingMap=!1,this._layerViews=new Collection,this._itemType=ItemType.MAP_EXTENSION,this._skipBasemapOptions=!1;let i={...e};this._basemapOptions=new BasemapExtensionCollection(this),this._groundExtensions=new WeakMap,this._layerExtensions=this._createLayerExtensionCollection(),this.tableExtensions=this._createTableExtensionCollection(),this.formatSettings=this._createFormatSettings(),this._bookmarks=new Collection,this.constraints=new MapConstraints,this.watch(["_map","_scene"],(e=>{e&&(onEach(e.layers,"layerview-create",(e=>{this._layerViews.add(e.layerView)})),onEach(e.layers,"layerview-destroy",(e=>{this._layerViews.remove(e.layerView)})))}));const{webMap:s,webScene:a,initialViewMode:n,map:o,basemapOptions:r}=i;if(this._webMap=s,this._webScene=a,this._webMapItem=toPortalItem(s),this._webSceneItem=toPortalItem(a),this.initialViewMode=n,isWebScene(o)&&a)throw new ArgumentError("Cannot specify webScene property if map is initialized to a WebScene instance.");if(isMap(o)&&s)throw new ArgumentError("Cannot specify webMap property if map is initialized to a 2D Map instance.");if(isWebScene(o)||isWebMap(o)||isMap(o))this.assignProperties({basemapOptions:r}),this._skipBasemapOptions=!!r;else{const{map:e,layerExtensions:t,tableExtensions:s,groundExtension:a,basemapOptions:n,basemapExtension:o,...r}=i;this._deferredProperties={map:e,layerExtensions:t,tableExtensions:s,groundExtension:a,basemapOptions:n,basemapExtension:o},i=r,n&&(this._skipBasemapOptions=!0)}this._initMapFromProperties(i),this.watch("map.basemap",(()=>this._onBasemapChange()),!0),this.watch("map.ground",(()=>this._onGroundChange()),!0),this.allLayerExtensions=new AllLayerExtensionCollectionImpl(this),(null===(t=this.map)||void 0===t?void 0:t.basemap)&&this._onBasemapChange()}get webMap(){return this._webMap}get webScene(){return this._webScene}get map(){return this._currentMap}get viewMode(){return this.map?isWebScene(this.map)?"scene":"map":this.initialViewMode}get initialViewMode(){return this.webMap&&this.webScene?this._initialViewMode||"map":isWebScene(this.map)||this.webScene&&!this.webMap?"scene":"map"}set initialViewMode(e){this._initialViewMode=e}get requestHelper(){return this._requestHelper||(this._requestHelper=new DefaultArcGISRequestHelper),this._requestHelper}set requestHelper(e){this._requestHelper=e}get basemapExtension(){return this._basemapExtension}set basemapExtension(e){const t=this._basemapExtension;if(t!==e)if(t&&t._setMapExtension(void 0),e){if(e._setMapExtension(this),this.isInitialized&&!e.basemap){if(e.isInitialized)throw e._setMapExtension(void 0),new InvalidOperationError("Cannot set MapExtension.basemapExtension without a valid Esri Basemap object");e.initialize()}this._ensureIsBasemapOption(e),this.map&&e.basemap&&e.basemap!==this.map.basemap?this.map.basemap=e.basemap:this._basemapExtension=e}else this.map.basemap=void 0,this._basemapExtension=void 0}get groundExtension(){var e;return this._groundExtension||(this.groundExtension=new GroundExtension({ground:null===(e=this.map)||void 0===e?void 0:e.ground})),this._groundExtension}set groundExtension(e){if(!e)throw new InvalidOperationError("Cannot set map.ground to undefined");const t=this._groundExtension;t!==e&&(t&&t._setMapExtension(void 0),e._setMapExtension(this),e._resolveGround(),e.ground?(this._groundExtensions.set(e.ground,e),this.map&&e.ground!==this.map.ground?this.map.ground=e.ground:this._groundExtension=e):this._groundExtension=e)}get basemapOptions(){return this._basemapOptions}get bookmarks(){return this._bookmarks}get initialBasemapExtension(){return this._initialBasemapExtension}get initialLayerPreset(){return this._initialLayerPreset}set initialLayerPreset(e){if(!e)return void(this._initialLayerPreset=void 0);const t=isLayerPreset(e)?e:new LayerPreset(e);this._initialLayerPreset=t}get _spatialReference(){return getMapSpatialReference(this.map)}get webMapItemTitle(){if(this._webMapItem)return this._webMapItem.title}get webSceneItemTitle(){if(this._webSceneItem)return this._webSceneItem.title}get title(){return this._title?this._title:this._webMapItem&&"map"===this.viewMode?this.webMapItemTitle:this._webSceneItem&&"scene"===this.viewMode?this.webSceneItemTitle:void 0}set title(e){this._title=e}get contextMenu(){return this._contextMenu}set contextMenu(e){this._contextMenu=e,e&&this.isInitialized&&!e.isInitialized&&(async()=>{try{await e.initialize()}catch(e){e instanceof Error&&log.error({message:"An error occurred while initializing context menu.",error:e})}})()}get layerExtensions(){return this._layerExtensions}getAllFeatureSources(e=(()=>!0)){const t=[],i=a=>{a.hasFeatures&&t.push(a);for(const t of a.sublayerExtensions.initializedItems.filter(e).toArray())s(t);if(isGroupLayerExtension(a))for(const t of a.layerExtensions.initializedItems.filter(e).toArray())i(t)},s=i=>{t.push(i);for(const t of i.sublayerExtensions.initializedItems.filter(e).toArray())s(t)};for(const t of this.layerExtensions.initializedItems.filter(e).toArray())i(t);for(const i of this.tableExtensions.initializedItems.filter(e).toArray())t.push(i);if(this.basemapExtension){for(const t of this.basemapExtension.baseLayerExtensions.initializedItems.filter(e).toArray())i(t);for(const t of this.basemapExtension.referenceLayerExtensions.initializedItems.filter(e).toArray())i(t)}return t}isSupportedViewMode(e){return e===this.viewMode||!(!this.webMap&&!this.webScene)&&("scene"===e?!!this.webScene:!!this.webMap)}async switchViewMode(e){if(checkArg("viewMode",e).isNotMissing().satisfies((e=>this.isSupportedViewMode(e)),"Unsupported view mode."),this.viewMode===e)return;let t;"scene"===e?(await this._createScene(),t=this._scene):(await this._createMap(),t=this._map),t.basemap=this.map.basemap,await this.switchMap(t),this._notifyChange("viewMode"),this._notifyChange("title")}async switchMap(e){if(checkArg("newMap",e).isNotMissing(),e===this.map)return;if(!this.map)return void this._setMap(e);this.isSwitchingMap=!0,this.isInitialized&&await load(e);const t=new Map;this.map.layers.forEach((e=>t.set(e,this.layerExtensions.forLayer(e))));const{basemapExtension:i}=this;this._setMap(e),this._updateBookmarks();const s=[];for(const e of this.map.layers.toArray()){const i=find(t.entries(),(([t])=>layersAreEquivalent(t,e)));if(i)s.push((async()=>{const t=i[1];await t._switchLayer(e),this._layerExtensions._register(t)})());else{const t=this._layerExtensions._forLayer(e);(null==t?void 0:t.layer)!==e&&s.push(t._switchLayer(e))}}this.map.basemap&&i&&basemapsAreEquivalent(this.map.basemap,i.basemap)&&s.push((async()=>{await i._switchBasemap(this.map.basemap),this.basemapExtension=i})()),this.isInitialized&&s.push(this._initializeChildren()),await Promise.all(s),this.isSwitchingMap=!1}async setWebMap(e){if(!e&&this.webMap&&!this.webScene)throw new InvalidOperationError("Cannot unset both webMap and webScene.");this._webMap=e,this._map=void 0,this._createMapPromise=void 0,this._webMapItem=toPortalItem(e),await load(this._webMapItem),"map"===this.viewMode&&(e?(this._basemapOptions.isExplicitlyModified||this._basemapOptions.removeAllInternal(),await this._createMap(),await this.switchMap(this._map),await this._createStandardBasemapOptions(),this._basemapOptions.reorderInternal(this.basemapExtension,0),this._initialBasemapExtension=this.basemapExtension):await this.switchViewMode("scene")),this._notifyChange("webMap"),this._notifyChange("initialViewMode"),this._notifyChange("title")}async setWebScene(e){if(!e&&this.webScene&&!this.webMap)throw new InvalidOperationError("Cannot unset both webMap and webScene.");this._webScene=e,this._scene=void 0,this._createScenePromise=void 0,this._webSceneItem=toPortalItem(e),await load(this._webSceneItem),"scene"===this.viewMode&&(e?(this._basemapOptions.isExplicitlyModified||this._basemapOptions.removeAllInternal(),await this._createScene(),await this.switchMap(this._scene),await this._createStandardBasemapOptions(),this._basemapOptions.reorderInternal(this.basemapExtension,0),this._initialBasemapExtension=this.basemapExtension):await this.switchViewMode("map")),this._notifyChange("webScene"),this._notifyChange("initialViewMode"),this._notifyChange("title")}getDefaults(){const e=super.getDefaults();return e.initialViewMode="map",e}async _createScene(){var e;if(!this._scene&&this.webScene)return this._createScenePromise=null!==(e=this._createScenePromise)&&void 0!==e?e:(async()=>{if(isPortalItem(this.webScene)){const e=new((await import("@arcgis/core/WebScene")).default);await this._loadAndApplyPortalItemData(this._webSceneItem,e),this._scene=e}else this._scene=await WebSceneJson.toEsriApiWebScene(this.webScene)})()}async _createMap(){var e;if(!this._map&&this.webMap)return this._createMapPromise=null!==(e=this._createMapPromise)&&void 0!==e?e:(async()=>{if(isPortalItem(this.webMap)){const e=new((await import("@arcgis/core/WebMap")).default);await this._loadAndApplyPortalItemData(this._webMapItem,e),this._map=e}else this._map=await WebMapJson.toEsriApiWebMap(this.webMap)})()}_getSerializableProperties(){return{...super._getSerializableProperties(),layerExtensions:{serializeModes:["initial","project"],deserialize:e=>{var t,i;if(this.map&&e){const s=null!==(i=null===(t="map"===this.viewMode?this._scene:this._map)||void 0===t?void 0:t.layers.toArray())&&void 0!==i?i:[],a=e.filter((e=>!s.includes(e.layer)&&!s.some((t=>e.layer&&(LayerExtension._matchesRef(t,e.layer)||layersAreEquivalent(t,e.layer))))));_assignLayerExtensions(this.layerExtensions,a)}},serialize:e=>{var t,i,s,a;if(null===(t=this._deferredProperties)||void 0===t?void 0:t.layerExtensions)return this._deferredProperties.layerExtensions;{const t="map"===this.viewMode,n=null===(i=t?this._map:this._scene)||void 0===i?void 0:i.layers.toArray();let o=null!==(a=null===(s=t?this._scene:this._map)||void 0===s?void 0:s.layers.toArray())&&void 0!==a?a:[];return o=o.filter((e=>!n.find((t=>layersAreEquivalent(t,e))))),this.layerExtensions.concat(o.map((e=>this._layerExtensions._forLayer(e)))).filter((t=>"initial"!==e||!t.dynamicallyAddedLayer)).toArray()}}},tableExtensions:{serializeModes:["initial","project"],deserialize:e=>{this.map?compare(this.tableExtensions,e,{onNew:(e,t)=>{this.tableExtensions.add(isTableExtension(e)?e:TableExtension.create(e),t)},onMatch:(e,t,i,s)=>{isTableExtension(t)||e.assignProperties(t),i!==s&&this.tableExtensions.reorder(e,s)},equals:(e,t)=>isTableExtension(t)?t===e:!!TableExtension._matchesRef(e,t.table)||e.id===t.id}):this._deferredProperties={...this._deferredProperties,tableExtensions:e}},serialize:()=>{var e,t;return(null===(e=this._deferredProperties)||void 0===e?void 0:e.tableExtensions)?null===(t=this._deferredProperties)||void 0===t?void 0:t.tableExtensions:this.tableExtensions.toArray()}},basemapExtension:{serializeModes:["project"],deserialize:e=>{this.map?e?isBasemapExtension(e)?this.basemapExtension=e:this.basemapExtension?this.basemapExtension.assignProperties(e):this.basemapExtension=BasemapExtension.create(e):this.basemapExtension=void 0:this._deferredProperties={...this._deferredProperties,basemapExtension:e}},serialize:()=>{var e,t;return(null===(e=this._deferredProperties)||void 0===e?void 0:e.basemapExtension)?null===(t=this._deferredProperties)||void 0===t?void 0:t.basemapExtension:this.basemapExtension}},basemapOptions:{serializeModes:["initial"],deserialize:e=>{this._skipBasemapOptions?this._skipBasemapOptions=!1:(compare(this.basemapOptions,e,{onNew:(e,t)=>{this.basemapOptions.add(isBasemapExtension(e)?e:BasemapExtension.create(e),t)},onMatch:(e,t,i,s)=>{isBasemapExtension(t)||e.assignProperties(t),i!==s&&this.basemapOptions.reorder(e,s)},onMissing:e=>{this.basemapOptions.remove(e)},equals:(e,t)=>{if(isBasemapExtension(t))return t===e;if(e.id&&t.id)return e.id===t.id;{const i=e.toJSON();return basemapsAreEquivalent(i.basemap,t.basemap||t.baseMap)}}}),this.basemapExtension&&this._ensureIsBasemapOption(this.basemapExtension),this.isInitialized&&parallelEach(this.basemapOptions.toArray(),(e=>e._createBackingBasemap())))},serialize:()=>{var e,t;return(null===(e=this._deferredProperties)||void 0===e?void 0:e.basemapOptions)?null===(t=this._deferredProperties)||void 0===t?void 0:t.basemapOptions:this.basemapOptions.toArray()}},groundExtension:{serializeModes:["initial"],deserialize:e=>{this.map?isGroundExtension(e)?this.groundExtension=e:this.groundExtension.assignProperties(e):this._deferredProperties={...this._deferredProperties,groundExtension:e}},serialize:()=>{var e,t;return(null===(e=this._deferredProperties)||void 0===e?void 0:e.groundExtension)?null===(t=this._deferredProperties)||void 0===t?void 0:t.groundExtension:this.groundExtension}},bookmarks:{serialize:()=>this.bookmarks.map((e=>e.toJSON())).toArray(),deserialize:e=>{this.bookmarks.addMany(e.map((e=>isBookmark(e)?e:new Bookmark(e))))}},webMap:{serializeModes:["initial"],deserialize:!1},webScene:{serializeModes:["initial"],deserialize:!1},initialLayerPreset:"initial",initialViewMode:{serializeModes:["initial","project"],serialize:e=>"project"===e?this.viewMode:"scene"!==this.initialViewMode||!this.webScene&&this.webMap?"map":"scene",deserialize:e=>{this.viewMode!==e&&(this._deserializedViewMode=e),this._initialViewMode=e},isDefault:(e,t)=>"project"!==t&&"map"===e},formatSettings:"initial",constraints:"initial",title:"initial",onClick:"initial",onHover:"initial",onHoverEnd:"initial",onInitialized:"initial",onViewpointChanged:"initial",contextMenu:{serializeModes:["initial"],deserialize:e=>{e?isMenu(e)?this.contextMenu=e:this.contextMenu?this.contextMenu.assignProperties(e):this.contextMenu=Menu.create(e):this.contextMenu=void 0}},map:{serializeModes:["project"],serialize:()=>({operationalLayers:this.layerExtensions.toArray().filter((e=>e.layer)).map((e=>e._getProjectWebmapJSON())),tables:this.tableExtensions.toArray().filter((e=>e.table)).map((e=>({id:e.table.id,title:e.table.title})))}),deserialize:e=>{if(this.map)if(isMap(e)||isWebMap(e)||isWebScene(e)){if(e!==this.map)throw new ArgumentError("properties.map","Property 'map' is read-only.")}else this._deserializedMapPromise=(async()=>{this._deserializedViewMode&&this.webMap&&this.webScene&&(this._deserializedViewModePromise=this.switchViewMode(this._deserializedViewMode),await this._deserializedViewModePromise,this._deserializedViewMode=void 0,this._deserializedViewModePromise=void 0),await this._applyMapProperties(e,this.map),this._deserializedMapPromise=void 0})();else this._deferredProperties={...this._deferredProperties,map:e}}},requestHelper:{serialize:!1}}}async _applyMapProperties(e,t,i){await parallelEach(this.basemapOptions.toArray(),(e=>e._createBackingBasemap()));let s=e;const a=this.basemapOptions.find((e=>basemapsAreEquivalent(e.basemap,s.baseMap)));a&&(t.basemap=a.basemap,s={...s,baseMap:{...s.baseMap,title:t.basemap.title}}),isWebScene(t)?await WebSceneJson.applyToEsriApiWebScene(s,t,i):await WebMapJson.applyToEsriApiMap(s,t,i)}_createFormatSettings(){return new FormatSettings}_createLayerExtensionCollection(){return new LayerExtensionCollectionImpl(this)}_createTableExtensionCollection(){return new TableExtensionCollectionImpl(this)}async _onInitialize(){var e;await super._onInitialize();const{basemapExtension:t,basemapOptions:i,groundExtension:s,webMap:a,webScene:n,map:o,...r}=null!==(e=this._deferredProperties)&&void 0!==e?e:{};if(i&&this.assignProperties({basemapOptions:i}),this.map||("scene"===this.initialViewMode?this._setMap(new((await import("@arcgis/core/WebScene")).default)):this._setMap(new((await import("@arcgis/core/WebMap")).default))),this.map.basemap&&this._onBasemapChange(),(a||n)&&await this._applyMapProperties("scene"===this.initialViewMode?n:a,this.map),t&&(this.assignProperties({basemapExtension:t}),await this.basemapExtension._createBackingBasemap()),s&&this.assignProperties({groundExtension:s}),this._webMapItem||this._webSceneItem){await Promise.all([load(this.map),load(this._webMapItem),load(this._webSceneItem)]),validatePortalItem(this._webMapItem,"webMap","Web Map"),validatePortalItem(this._webSceneItem,"webScene","Web Scene");const e=isWebScene(this.map)?this._webSceneItem:this._webMapItem;await this._loadAndApplyPortalItemData(e)}else await load(this.map);o&&await this._applyMapProperties(o,this.map),this.assignProperties(r),this._deferredProperties=void 0,this._initialBasemapExtension=this.basemapExtension,this._updateBookmarks(),this.contextMenu&&await this.contextMenu.initialize();for(const e of this.layerExtensions.toArray())await e._createBackingLayer();await Promise.all(this.tableExtensions.map((e=>e._createBackingTable())).toArray())}async _postInitialize(){await super._postInitialize(),await this._createStandardBasemapOptions(),await parallelEach(this.basemapOptions.toArray(),(e=>e._createBackingBasemap())),this.initialLayerPreset&&await this.initialLayerPreset.applyTo(this)}*_initializableChildCollections(){yield*super._initializableChildCollections();const e=new Collection(this.layerExtensions.filter((e=>!!e.layer)));e.remove=e=>{this.layerExtensions.remove(e)};const t=new Collection(this.tableExtensions.filter((e=>!!e.table)));if(t.remove=e=>{this.tableExtensions.remove(e)},yield e,yield t,this.basemapExtension){const e=new Collection;e.add(this.basemapExtension),yield e}const i=new Collection;i.add(this.groundExtension),yield i}_initMapFromProperties(e){const t=e.map;isMap(t)||isWebMap(t)||isWebScene(t)?this._setMap(t):"scene"===this.initialViewMode?e.webScene&&!isPortalItem(e.webScene)&&(this._deferredProperties={webScene:e.webScene,...this._deferredProperties}):e.webMap&&!isPortalItem(e.webMap)&&(this._deferredProperties={webMap:e.webMap,...this._deferredProperties})}_setMap(e){var t,i;isWebScene(e)?this._scene=e:this._map=e,this._currentMap=e,(null===(t=this.basemapExtension)||void 0===t?void 0:t.basemap)&&!e.basemap&&(e.basemap=this.basemapExtension.basemap),(null===(i=this.groundExtension)||void 0===i?void 0:i.ground)&&!e.ground&&(e.ground=this.groundExtension.ground),this._notifyChange("map")}async _loadAndApplyPortalItemData(e,t){var i;await load(e);const s=await e.fetchData();resolveRelativeHrefs(s,e),await this._inferLayerTypes(s),(null===(i=this.basemapExtension)||void 0===i?void 0:i.basemap)&&!t&&delete s.baseMap,GroundExtension.isDefaultGround(this.groundExtension.ground)||t||delete s.ground;const a=t||this.map;await load(a),await this._applyMapProperties(s,a,e),a.portalItem=e;const{viewpoint:n,spatialReference:o}=a.initialViewProperties;n&&n.targetGeometry&&!n.targetGeometry.spatialReference.equals(o)&&(a.initialViewProperties.viewpoint.targetGeometry=(await project([n.targetGeometry],o))[0]),n&&n.camera&&(n.camera.position.spatialReference=o.clone())}_onBasemapChange(){if(this._basemapExtension){if(this.basemapExtension.basemap==this.map.basemap)return;this._basemapExtension._setMapExtension(void 0)}if(this.map.basemap){let e=this.basemapOptions.find((e=>e.basemap===this.map.basemap));e||(e=BasemapExtension.create({basemap:this.map.basemap}),this._basemapOptions.addInternal(e,0)),e.mapExtension!==this&&e._setMapExtension(this),this._basemapExtension=e}else this._basemapExtension=void 0;this._notifyChange("basemapExtension")}_onGroundChange(){if(this._groundExtension){if(this.groundExtension.ground===this.map.ground)return void(this._groundExtensions.has(this.map.ground)||this._groundExtensions.set(this.map.ground,this.groundExtension));this.groundExtension._setMapExtension(void 0)}this._groundExtensions.has(this.map.ground)||this._groundExtensions.set(this.map.ground,new GroundExtension({ground:this.map.ground}));const e=this._groundExtensions.get(this.map.ground);e.mapExtension!==this&&e._setMapExtension(this),this._groundExtension=e,this._notifyChange("groundExtension")}async _inferLayerTypes(e){var t;const i=[];if(e.operationalLayers)for(const t of e.operationalLayers)i.push(this._inferLayerType(t));if(e.baseMap&&i.push(this._inferBasemapLayerTypes(e.baseMap)),e.hasOwnProperty("ground")&&i.push(this._inferGroundLayerTypes(e.ground)),null===(t=e.presentation)||void 0===t?void 0:t.slides)for(const t of e.presentation.slides)t.baseMap&&"string"!=typeof t.baseMap&&i.push(this._inferBasemapLayerTypes(t.baseMap));await Promise.all(i)}async _inferBasemapLayerTypes(e){const t=[];if(e.baseMapLayers)for(const i of e.baseMapLayers)t.push(this._inferLayerType(i));await Promise.all(t)}async _inferGroundLayerTypes(e){const t=[];if(e.layers)for(const i of e.layers)t.push(this._inferLayerType(i));await Promise.all(t)}async _inferLayerType(e){if(!e.layerType)if(e.type)e.layerType=e.type;else if(e.url){const t=e.url;if(t.match(".*MapServer/\\d{1,}/?$")||t.match(".*FeatureServer/\\d{1,}/?$"))e.layerType="ArcGISFeatureLayer";else if(t.match(".*StreamServer/?$"))e.layerType="ArcGISStreamLayer";else if(t.match(".*ImageServer/?$")){const i=await this._getLayerData(t);i.cacheType?"Map"===i.cacheType?e.layerType="ArcGISTiledImageServiceLayer":"Elevation"===i.cacheType&&(e.layerType="ArcGISTiledElevationServiceLayer"):e.layerType="ArcGISImageServiceLayer"}else if(t.match(".*MapServer/?$")){const i=await this._getLayerData(t);e.layerType=i.tileInfo?"ArcGISTiledMapServiceLayer":"ArcGISMapServiceLayer"}else if(t.match(".*\\.(csv|txt)$"))e.layerType="CSV";else if(t.match(".*\\.kml$"))e.layerType="KML";else if(t.match(".*SceneServer/layers/\\d{1,}/?$")){const i=await this._getLayerData(t);"3DObject"===i.layerType?e.layerType="ArcGISSceneServiceLayer":"IntegratedMesh"===i.layerType?e.layerType="IntegratedMeshLayer":"PointCloud"===i.layerType&&(e.layerType="PointCloudLayer")}else t.match(".*(\\.xml|rss/?)$")&&(e.layerType="GeoRSS")}else if(e.layers){e.layerType="GroupLayer";const t=[];for(const i of e.layers)t.push(this._inferLayerType(i));await Promise.all(t)}else e.templateUrl&&e.tileInfo?e.layerType="WebTiledLayer":e.featureCollection?e.layerType="ArcGISFeatureLayer":e.styleUrl?e.layerType="VectorTileLayer":e.mapUrl&&(e.layerType="WMS")}async _getLayerData(e){const t=await this.requestHelper.request(e,{query:{f:"json"}});if(!t||!t.data)throw new Error(`Response to request for url ${e} was invalid.`);return t.data}async _createStandardBasemapOptions(){const e=this._spatialReference;!this._basemapOptions.isExplicitlyModified&&e&&e.isWebMercator&&await parallelEach([WellKnownBasemap.SATELLITE,WellKnownBasemap.HYBRID_VECTOR,WellKnownBasemap.STREETS_VECTOR,WellKnownBasemap.TOPO_VECTOR,WellKnownBasemap.STREETS_NAVIGATION_VECTOR,WellKnownBasemap.STREETS_NIGHT_VECTOR,WellKnownBasemap.TERRAIN_VECTOR,WellKnownBasemap.DARK_GRAY_VECTOR,WellKnownBasemap.GRAY_VECTOR,WellKnownBasemap.NATIONAL_GEOGRAPHIC,WellKnownBasemap.OCEANS_VECTOR,WellKnownBasemap.OPEN_STREET_MAP_VECTOR],(async e=>{const t=await createStandardBasemap(e);basemapsAreEquivalent(this.map.basemap,t)?this._basemapOptions.addInternal(this.basemapExtension):this._basemapOptions.addInternal(BasemapExtension.create({basemap:t}),void 0,!1)}))}_ensureIsBasemapOption(e){const t=this.basemapOptions.findIndex((t=>t.basemap===e.basemap));t>=0?this._basemapOptions.getItemAt(t)!==e&&(this._basemapOptions.removeAtInternal(t),this._basemapOptions.addInternal(e,t)):this._basemapOptions.addInternal(e,0)}_updateBookmarks(){var e,t,i;this.bookmarks.removeMany(this.bookmarks.filter((e=>"map"===e.source))),isWebMap(this.map)&&(null===(e=this.map.bookmarks)||void 0===e?void 0:e.length)>0?this.map.bookmarks.forEach((e=>{const t=toEsriApiGeometry(e.extent),i=new EsriViewpoint({targetGeometry:t});this.bookmarks.add(new Bookmark({source:"map",title:e.name,viewpoint:i}))})):isWebScene(this.map)&&(null===(i=null===(t=this.map.presentation)||void 0===t?void 0:t.slides)||void 0===i?void 0:i.length)>0&&this.map.presentation.slides.forEach((e=>{const t={source:"map",title:e.title.text,viewpoint:e.viewpoint},i=new Bookmark(t);this.bookmarks.add(i)}))}};MapExtension=__decorate([serializable],MapExtension);export{MapExtension};class LayerExtensionCollectionImpl extends LayerExtensionCollectionBase{constructor(e){super(e,"map.layers")}get _mapExtension(){return this._parent}toJSON(){const e=[];return this.forEach((t=>{e.push(`item://${encodeURIComponent(ItemType.LAYER_EXTENSION)}/${encodeURIComponent(t.id)}`)})),e}}class BasemapExtensionCollection extends InitializableCollectionProxy{constructor(e){super(new Collection),this.isExplicitlyModified=!1,this._mapExtension=e}add(e,t){super.add(e,t),this.isExplicitlyModified=!0,1===this.length&&this._mapExtension.map&&!this._mapExtension.basemapExtension&&(this._mapExtension.basemapExtension=e)}addMany(e,t){super.addMany(e,t),this.isExplicitlyModified=!0}addInternal(e,t,i=!0){const s=e=>{const t="-vector";return(null==e?void 0:e.endsWith(t))?e.substring(0,e.length-t.length):e};let a;if(e.basemap){const t=s(e.basemap.id);if(a=this.findIndex((e=>{var i;return s(null===(i=e.basemap)||void 0===i?void 0:i.id)===t})),isStandardBasemap(e.basemap)&&a>=0){if(!i)return;super.removeAt(a)}}super.add(e,null!=t?t:a>=0?a:void 0)}removeAt(e){const t=super.removeAt(e);return t&&(this.isExplicitlyModified=!0,t===this._mapExtension.basemapExtension&&(e<this.length?this._mapExtension.basemapExtension=this.getItemAt(e):this.length?this._mapExtension.basemapExtension=this.getItemAt(e-1):this._mapExtension.basemapExtension=void 0)),t}removeAll(){this._mapExtension.basemapExtension=void 0,super.removeAll()}removeAtInternal(e){return super.removeAt(e)}removeAllInternal(){for(;this.length;)this.removeAtInternal(this.length-1)}reorder(e,t){return super.reorder(e,t),this.isExplicitlyModified=!0,e}reorderInternal(e,t){return super.reorder(e,t)}_itemIsInitialized(e){return super._itemIsInitialized(e)&&!!e.basemap}}class TableExtensionCollectionImpl extends InitializableCollectionProxy{constructor(e){super(),this._tableExtensionMap=new WeakMap,this._uninitializedTableExtensions=new Set,this._mapExtension=e,onCollectionPropertyChange(this._mapExtension,"map.tables",(e=>{const t={added:(e.added||[]).map((e=>this._forTable(e))),moved:(e.moved||[]).map((e=>this._forTable(e))),removed:(e.removed||[]).map((e=>this._forTable(e))),target:this};this.emit("change",t)})),this._mapExtension.watch("map.tables.length",(()=>this._notifyChange("length")))}get _collection(){return this._tables.map((e=>this._forTable(e))).concat(Array.from(this._uninitializedTableExtensions))}get _tables(){var e,t;return null!==(t=null===(e=this._mapExtension.map)||void 0===e?void 0:e.tables)&&void 0!==t?t:new ReadOnlyCollection(new Collection)}toJSON(){const e=[];return this.forEach((t=>{e.push(`item://${encodeURIComponent(ItemType.TABLE_EXTENSION)}/${encodeURIComponent(t.id)}`)})),e}clone(){const e=new TableExtensionCollectionImpl(this._mapExtension);return e._tableExtensionMap=this._tableExtensionMap,e}findById(e){return checkArg("id",e).isNotMissing(),this.find((t=>t.id===e))}findByTableId(e){return checkArg("id",e).isNotMissing(),this.find((t=>t.table.id===e))}forTable(e){if(checkArg("table",e).isNotMissing(),this._tables.includes(e))return this._forTable(e)}add(e,t){if(checkArg("tableX",e).isNotMissing(),e.mapExtension&&e.mapExtension.tableExtensions.remove(e),e._setMapExtension(this._mapExtension),e.table){const i=this._tableExtensionMap.get(e.table);if(this._tableExtensionMap.set(e.table,e),i&&i!==e&&this._onRemoved(i),this._tables.includes(e.table))if(void 0===t){const t={added:[e],moved:[],removed:i?[i]:[],target:this};this.emit("change",t)}else this._tables.reorder(e.table,t);else this._tables.add(e.table,t)}else{this._uninitializedTableExtensions.add(e);const t={added:[e],moved:[],removed:[],target:this};this.emit("change",t)}this._onAdded(e)}removeAt(e){const t=this.getItemAt(e);if(void 0!==t){if(this._uninitializedTableExtensions.has(t)){this._uninitializedTableExtensions.delete(t);const e={added:[],moved:[],removed:[t],target:this};this.emit("change",e)}else this._tables.remove(t.table);return this._onRemoved(t),t}}reorder(e,t){if(e&&this._tables.includes(e.table))return this._tables.reorder(e.table,t),e}sort(e){this._tables.sort(((t,i)=>e(this._forTable(t),this._forTable(i))))}_itemIsInitialized(e){return super._itemIsInitialized(e)&&!!e.table}_onAdded(e){}_onRemoved(e){e._setMapExtension(void 0)}_forTable(e){for(const e of this._uninitializedTableExtensions)e._resolveTable(),e.table&&(this._tableExtensionMap.set(e.table,e),this._uninitializedTableExtensions.delete(e));if(!this._tableExtensionMap.has(e)){const t=TableExtension.create({table:e});this._tableExtensionMap.set(e,t),t._setMapExtension(this._mapExtension),this._onAdded(t)}return this._tableExtensionMap.get(e)}}class AllLayerExtensionCollectionImpl extends ReadOnlyInitializableCollection{constructor(e){super(),this._mapExtension=e}get _collection(){let e=this._mapExtension.layerExtensions.flatten((e=>isGroupLayerExtension(e)?e.layerExtensions:[]));return this._mapExtension.basemapExtension&&(e=e.concat(this._mapExtension.basemapExtension.baseLayerExtensions.toArray()).concat(this._mapExtension.basemapExtension.referenceLayerExtensions.toArray())),e=e.concat(this._mapExtension.groundExtension.layerExtensions.toArray()),e}findById(e){return checkArg("id",e).isNotMissing(),this.find((t=>t.id===e))}findByLayerId(e){return checkArg("id",e).isNotMissing(),this.find((t=>t.layer.id===e))}forLayer(e){return checkArg("layer",e).isNotMissing(),this.findByLayerId(e.id)}emit(e,t){if("change"===e){const i=new Collection;i.addMany(t.added);const s=i.flatten((e=>isGroupLayerExtension(e)?e.layerExtensions:[])).toArray(),a=new Collection;a.addMany(t.removed);const n=a.flatten((e=>isGroupLayerExtension(e)?e.layerExtensions:[])).toArray(),o=new Collection;o.addMany(t.moved);const r=o.flatten((e=>isGroupLayerExtension(e)?e.layerExtensions:[])).toArray();super.emit(e,{added:s,removed:n,moved:r,target:this})}return super.emit(e,t)}_itemIsInitialized(e){return super._itemIsInitialized(e)&&!!e.layer}}function toPortalItem(e){if("object"!=typeof e||!e||!e.baseMap)return toPortalItemBase(e)}function isPortalItem(e){return"object"!=typeof e||e&&!e.baseMap}function validatePortalItem(e,t,i){if((null==e?void 0:e.type)&&e.type!==i)throw new Error(`Invalid portal item type "${e.type}" for property ${t}.`)}
1
+ import{__decorate}from"tslib";import EsriViewpoint from"@arcgis/core/Viewpoint";import{ArgumentError}from"../ArgumentError.js";import{EntityBase}from"../Entity.js";import{InvalidOperationError}from"../InvalidOperationError.js";import{isBasemapExtension,isBookmark,isGroundExtension,isLayerPreset,isMenu,isTableExtension,ItemType}from"../ItemType.js";import{TableExtension}from"../data/TableExtension.js";import{LayerPreset}from"../layer-preset/LayerPreset.js";import{Menu}from"../menus/Menu.js";import{toEsriApiGeometry}from"../portal/Geometry.js";import{WebMap as WebMapJson}from"../portal/WebMap.js";import{WebScene as WebSceneJson}from"../portal/WebScene.js";import{resolveRelativeHrefs}from"../portal/_utils.js";import{DefaultArcGISRequestHelper}from"../support/ArcGISRequestHelper.js";import{FormatSettings}from"../support/FormatSettings.js";import{InitializableCollectionProxy}from"../support/InitializableCollectionProxy.js";import{ReadOnlyInitializableCollection}from"../support/ReadOnlyInitializableCollection.js";import{serializable}from"../support/Serializable.js";import{WellKnownBasemap}from"../support/esri.js";import{ReadOnlyCollection}from"../utilities/ReadOnlyCollection.js";import{basemapsAreEquivalent,createStandardBasemap,isStandardBasemap}from"../utilities/basemaps.js";import{checkArg}from"../utilities/checkArg.js";import{Collection,compare}from"../utilities/collection.js";import{load}from"../utilities/esri.js";import{isGroupLayerExtension}from"../utilities/extensions.js";import{project}from"../utilities/geometry.js";import{find}from"../utilities/iterable.js";import{layersAreEquivalent}from"../utilities/layers.js";import{getLogger}from"../utilities/log.js";import{getMapSpatialReference,isMap,isWebMap,isWebScene}from"../utilities/mapping.js";import{toPortalItem as toPortalItemBase}from"../utilities/portal.js";import{parallelEach}from"../utilities/promise.js";import{onCollectionPropertyChange,onEach}from"../utilities/watch.js";import{BasemapExtension}from"./BasemapExtension.js";import{Bookmark}from"./Bookmark.js";import{GroundExtension}from"./GroundExtension.js";import{MapConstraints}from"./MapConstraints.js";import{UnsupportedLayerExtension}from"./UnsupportedLayerExtension.js";import{_assignLayerExtensions,LayerExtension}from"./_LayerExtension.js";import{LayerExtensionCollectionBase}from"./support/_LayerExtensionCollection.js";const log=getLogger("MapExtension");let MapExtension=class extends EntityBase{constructor(e){var t;super(e),this.isSwitchingMap=!1,this._layerViews=new Collection,this._itemType=ItemType.MAP_EXTENSION,this._skipBasemapOptions=!1;let i={...e};this._basemapOptions=new BasemapExtensionCollection(this),this._groundExtensions=new WeakMap,this._layerExtensions=this._createLayerExtensionCollection(),this.tableExtensions=this._createTableExtensionCollection(),this.formatSettings=this._createFormatSettings(),this._bookmarks=new Collection,this.constraints=new MapConstraints,this.watch(["_map","_scene"],(e=>{e&&(onEach(e.layers,"layerview-create",(e=>{this._layerViews.add(e.layerView)})),onEach(e.layers,"layerview-destroy",(e=>{this._layerViews.remove(e.layerView)})))}));const{webMap:s,webScene:a,initialViewMode:n,map:o,basemapOptions:r}=i;if(this._webMap=s,this._webScene=a,this._webMapItem=toPortalItem(s),this._webSceneItem=toPortalItem(a),this.initialViewMode=n,isWebScene(o)&&a)throw new ArgumentError("Cannot specify webScene property if map is initialized to a WebScene instance.");if(isMap(o)&&s)throw new ArgumentError("Cannot specify webMap property if map is initialized to a 2D Map instance.");if(isWebScene(o)||isWebMap(o)||isMap(o))this.assignProperties({basemapOptions:r}),this._skipBasemapOptions=!!r;else{const{map:e,layerExtensions:t,tableExtensions:s,groundExtension:a,basemapOptions:n,basemapExtension:o,...r}=i;this._deferredProperties={map:e,layerExtensions:t,tableExtensions:s,groundExtension:a,basemapOptions:n,basemapExtension:o},i=r,n&&(this._skipBasemapOptions=!0)}this._initMapFromProperties(i),this.watch("map.basemap",(()=>this._onBasemapChange()),!0),this.watch("map.ground",(()=>this._onGroundChange()),!0),this.allLayerExtensions=new AllLayerExtensionCollectionImpl(this),(null===(t=this.map)||void 0===t?void 0:t.basemap)&&this._onBasemapChange()}get webMap(){return this._webMap}get webScene(){return this._webScene}get map(){return this._currentMap}get viewMode(){return this.map?isWebScene(this.map)?"scene":"map":this.initialViewMode}get initialViewMode(){return this.webMap&&this.webScene?this._initialViewMode||"map":isWebScene(this.map)||this.webScene&&!this.webMap?"scene":"map"}set initialViewMode(e){this._initialViewMode=e}get requestHelper(){return this._requestHelper||(this._requestHelper=new DefaultArcGISRequestHelper),this._requestHelper}set requestHelper(e){this._requestHelper=e}get basemapExtension(){return this._basemapExtension}set basemapExtension(e){const t=this._basemapExtension;if(t!==e)if(t&&t._setMapExtension(void 0),e){if(e._setMapExtension(this),this.isInitialized&&!e.basemap){if(e.isInitialized)throw e._setMapExtension(void 0),new InvalidOperationError("Cannot set MapExtension.basemapExtension without a valid Esri Basemap object");e.initialize()}this._ensureIsBasemapOption(e),this.map&&e.basemap&&e.basemap!==this.map.basemap?this.map.basemap=e.basemap:this._basemapExtension=e}else this.map.basemap=void 0,this._basemapExtension=void 0}get groundExtension(){var e;return this._groundExtension||(this.groundExtension=new GroundExtension({ground:null===(e=this.map)||void 0===e?void 0:e.ground})),this._groundExtension}set groundExtension(e){if(!e)throw new InvalidOperationError("Cannot set map.ground to undefined");const t=this._groundExtension;t!==e&&(t&&t._setMapExtension(void 0),e._setMapExtension(this),e._resolveGround(),e.ground?(this._groundExtensions.set(e.ground,e),this.map&&e.ground!==this.map.ground?this.map.ground=e.ground:this._groundExtension=e):this._groundExtension=e)}get basemapOptions(){return this._basemapOptions}get bookmarks(){return this._bookmarks}get initialBasemapExtension(){return this._initialBasemapExtension}get initialLayerPreset(){return this._initialLayerPreset}set initialLayerPreset(e){if(!e)return void(this._initialLayerPreset=void 0);const t=isLayerPreset(e)?e:new LayerPreset(e);this._initialLayerPreset=t}get _spatialReference(){return getMapSpatialReference(this.map)}get webMapItemTitle(){if(this._webMapItem)return this._webMapItem.title}get webSceneItemTitle(){if(this._webSceneItem)return this._webSceneItem.title}get title(){return this._title?this._title:this._webMapItem&&"map"===this.viewMode?this.webMapItemTitle:this._webSceneItem&&"scene"===this.viewMode?this.webSceneItemTitle:void 0}set title(e){this._title=e}get contextMenu(){return this._contextMenu}set contextMenu(e){this._contextMenu=e,e&&this.isInitialized&&!e.isInitialized&&(async()=>{try{await e.initialize()}catch(e){e instanceof Error&&log.error({message:"An error occurred while initializing context menu.",error:e})}})()}get layerExtensions(){return this._layerExtensions}getAllFeatureSources(e=(()=>!0)){const t=[],i=a=>{a.hasFeatures&&t.push(a);for(const t of a.sublayerExtensions.initializedItems.filter(e).toArray())s(t);if(isGroupLayerExtension(a))for(const t of a.layerExtensions.initializedItems.filter(e).toArray())i(t)},s=i=>{t.push(i);for(const t of i.sublayerExtensions.initializedItems.filter(e).toArray())s(t)};for(const t of this.layerExtensions.initializedItems.filter(e).toArray())i(t);for(const i of this.tableExtensions.initializedItems.filter(e).toArray())t.push(i);if(this.basemapExtension){for(const t of this.basemapExtension.baseLayerExtensions.initializedItems.filter(e).toArray())i(t);for(const t of this.basemapExtension.referenceLayerExtensions.initializedItems.filter(e).toArray())i(t)}return t}isSupportedViewMode(e){return e===this.viewMode||!(!this.webMap&&!this.webScene)&&("scene"===e?!!this.webScene:!!this.webMap)}async switchViewMode(e){if(checkArg("viewMode",e).isNotMissing().satisfies((e=>this.isSupportedViewMode(e)),"Unsupported view mode."),this.viewMode===e)return;let t;"scene"===e?(await this._createScene(),t=this._scene):(await this._createMap(),t=this._map),t.basemap=this.map.basemap,await this.switchMap(t),this._notifyChange("viewMode"),this._notifyChange("title")}async switchMap(e){if(checkArg("newMap",e).isNotMissing(),e===this.map)return;if(!this.map)return void this._setMap(e);this.isSwitchingMap=!0,this.isInitialized&&await load(e);const t=new Map;this.map.layers.forEach((e=>t.set(e,this.layerExtensions.forLayer(e))));const{basemapExtension:i}=this;this._setMap(e),this._updateBookmarks();const s=[];for(const e of this.map.layers.toArray()){const i=find(t.entries(),(([t])=>layersAreEquivalent(t,e)));if(i)s.push((async()=>{const t=i[1];await t._switchLayer(e),this._layerExtensions._register(t)})());else{const t=this._layerExtensions._forLayer(e);(null==t?void 0:t.layer)!==e&&s.push(t._switchLayer(e))}}this.map.basemap&&i&&basemapsAreEquivalent(this.map.basemap,i.basemap)&&s.push((async()=>{await i._switchBasemap(this.map.basemap),this.basemapExtension=i})()),this.isInitialized&&s.push(this._initializeChildren()),await Promise.all(s),this.isSwitchingMap=!1}async setWebMap(e){if(!e&&this.webMap&&!this.webScene)throw new InvalidOperationError("Cannot unset both webMap and webScene.");this._webMap=e,this._map=void 0,this._createMapPromise=void 0,this._webMapItem=toPortalItem(e),await load(this._webMapItem),"map"===this.viewMode&&(e?(this._basemapOptions.isExplicitlyModified||this._basemapOptions.removeAllInternal(),await this._createMap(),await this.switchMap(this._map),await this._createStandardBasemapOptions(),this._basemapOptions.reorderInternal(this.basemapExtension,0),this._initialBasemapExtension=this.basemapExtension):await this.switchViewMode("scene")),this._notifyChange("webMap"),this._notifyChange("initialViewMode"),this._notifyChange("title")}async setWebScene(e){if(!e&&this.webScene&&!this.webMap)throw new InvalidOperationError("Cannot unset both webMap and webScene.");this._webScene=e,this._scene=void 0,this._createScenePromise=void 0,this._webSceneItem=toPortalItem(e),await load(this._webSceneItem),"scene"===this.viewMode&&(e?(this._basemapOptions.isExplicitlyModified||this._basemapOptions.removeAllInternal(),await this._createScene(),await this.switchMap(this._scene),await this._createStandardBasemapOptions(),this._basemapOptions.reorderInternal(this.basemapExtension,0),this._initialBasemapExtension=this.basemapExtension):await this.switchViewMode("map")),this._notifyChange("webScene"),this._notifyChange("initialViewMode"),this._notifyChange("title")}getDefaults(){const e=super.getDefaults();return e.initialViewMode="map",e}async _createScene(){var e;if(!this._scene&&this.webScene)return this._createScenePromise=null!==(e=this._createScenePromise)&&void 0!==e?e:(async()=>{if(isPortalItem(this.webScene)){const e=new((await import("@arcgis/core/WebScene")).default);await this._loadAndApplyPortalItemData(this._webSceneItem,e),this._scene=e}else this._scene=await WebSceneJson.toEsriApiWebScene(this.webScene)})()}async _createMap(){var e;if(!this._map&&this.webMap)return this._createMapPromise=null!==(e=this._createMapPromise)&&void 0!==e?e:(async()=>{if(isPortalItem(this.webMap)){const e=new((await import("@arcgis/core/WebMap")).default);await this._loadAndApplyPortalItemData(this._webMapItem,e),this._map=e}else this._map=await WebMapJson.toEsriApiWebMap(this.webMap)})()}_getSerializableProperties(){return{...super._getSerializableProperties(),layerExtensions:{serializeModes:["initial","project"],deserialize:e=>{var t,i;if(this.map&&e){const s=null!==(i=null===(t="map"===this.viewMode?this._scene:this._map)||void 0===t?void 0:t.layers.toArray())&&void 0!==i?i:[],a=e.filter((e=>!s.includes(e.layer)&&!s.some((t=>e.layer&&(LayerExtension._matchesRef(t,e.layer)||layersAreEquivalent(t,e.layer))))));_assignLayerExtensions(this.layerExtensions,a)}},serialize:e=>{var t,i,s,a;if(null===(t=this._deferredProperties)||void 0===t?void 0:t.layerExtensions)return this._deferredProperties.layerExtensions;{const t="map"===this.viewMode,n=null===(i=t?this._map:this._scene)||void 0===i?void 0:i.layers.toArray();let o=null!==(a=null===(s=t?this._scene:this._map)||void 0===s?void 0:s.layers.toArray())&&void 0!==a?a:[];return o=o.filter((e=>!n.find((t=>layersAreEquivalent(t,e))))),this.layerExtensions.concat(o.map((e=>this._layerExtensions._forLayer(e)))).filter((t=>!(t instanceof UnsupportedLayerExtension||"initial"===e)||!t.dynamicallyAddedLayer)).toArray()}}},tableExtensions:{serializeModes:["initial","project"],deserialize:e=>{this.map?compare(this.tableExtensions,e,{onNew:(e,t)=>{this.tableExtensions.add(isTableExtension(e)?e:TableExtension.create(e),t)},onMatch:(e,t,i,s)=>{isTableExtension(t)||e.assignProperties(t),i!==s&&this.tableExtensions.reorder(e,s)},equals:(e,t)=>isTableExtension(t)?t===e:!!TableExtension._matchesRef(e,t.table)||e.id===t.id}):this._deferredProperties={...this._deferredProperties,tableExtensions:e}},serialize:()=>{var e,t;return(null===(e=this._deferredProperties)||void 0===e?void 0:e.tableExtensions)?null===(t=this._deferredProperties)||void 0===t?void 0:t.tableExtensions:this.tableExtensions.toArray()}},basemapExtension:{serializeModes:["project"],deserialize:e=>{this.map?e?isBasemapExtension(e)?this.basemapExtension=e:this.basemapExtension?this.basemapExtension.assignProperties(e):this.basemapExtension=BasemapExtension.create(e):this.basemapExtension=void 0:this._deferredProperties={...this._deferredProperties,basemapExtension:e}},serialize:()=>{var e,t;return(null===(e=this._deferredProperties)||void 0===e?void 0:e.basemapExtension)?null===(t=this._deferredProperties)||void 0===t?void 0:t.basemapExtension:this.basemapExtension}},basemapOptions:{serializeModes:["initial"],deserialize:e=>{this._skipBasemapOptions?this._skipBasemapOptions=!1:(compare(this.basemapOptions,e,{onNew:(e,t)=>{this.basemapOptions.add(isBasemapExtension(e)?e:BasemapExtension.create(e),t)},onMatch:(e,t,i,s)=>{isBasemapExtension(t)||e.assignProperties(t),i!==s&&this.basemapOptions.reorder(e,s)},onMissing:e=>{this.basemapOptions.remove(e)},equals:(e,t)=>{if(isBasemapExtension(t))return t===e;if(e.id&&t.id)return e.id===t.id;{const i=e.toJSON();return basemapsAreEquivalent(i.basemap,t.basemap||t.baseMap)}}}),this.basemapExtension&&this._ensureIsBasemapOption(this.basemapExtension),this.isInitialized&&parallelEach(this.basemapOptions.toArray(),(e=>e._createBackingBasemap())))},serialize:()=>{var e,t;return(null===(e=this._deferredProperties)||void 0===e?void 0:e.basemapOptions)?null===(t=this._deferredProperties)||void 0===t?void 0:t.basemapOptions:this.basemapOptions.toArray()}},groundExtension:{serializeModes:["initial"],deserialize:e=>{this.map?isGroundExtension(e)?this.groundExtension=e:this.groundExtension.assignProperties(e):this._deferredProperties={...this._deferredProperties,groundExtension:e}},serialize:()=>{var e,t;return(null===(e=this._deferredProperties)||void 0===e?void 0:e.groundExtension)?null===(t=this._deferredProperties)||void 0===t?void 0:t.groundExtension:this.groundExtension}},bookmarks:{serialize:()=>this.bookmarks.map((e=>e.toJSON())).toArray(),deserialize:e=>{this.bookmarks.addMany(e.map((e=>isBookmark(e)?e:new Bookmark(e))))}},webMap:{serializeModes:["initial"],deserialize:!1},webScene:{serializeModes:["initial"],deserialize:!1},initialLayerPreset:"initial",initialViewMode:{serializeModes:["initial","project"],serialize:e=>"project"===e?this.viewMode:"scene"!==this.initialViewMode||!this.webScene&&this.webMap?"map":"scene",deserialize:e=>{this.viewMode!==e&&(this._deserializedViewMode=e),this._initialViewMode=e},isDefault:(e,t)=>"project"!==t&&"map"===e},formatSettings:"initial",constraints:"initial",title:"initial",onClick:"initial",onHover:"initial",onHoverEnd:"initial",onInitialized:"initial",onViewpointChanged:"initial",contextMenu:{serializeModes:["initial"],deserialize:e=>{e?isMenu(e)?this.contextMenu=e:this.contextMenu?this.contextMenu.assignProperties(e):this.contextMenu=Menu.create(e):this.contextMenu=void 0}},map:{serializeModes:["project"],serialize:()=>({operationalLayers:this.layerExtensions.toArray().filter((e=>e.layer)).map((e=>e._getProjectWebmapJSON())),tables:this.tableExtensions.toArray().filter((e=>e.table)).map((e=>({id:e.table.id,title:e.table.title})))}),deserialize:e=>{if(this.map)if(isMap(e)||isWebMap(e)||isWebScene(e)){if(e!==this.map)throw new ArgumentError("properties.map","Property 'map' is read-only.")}else this._deserializedMapPromise=(async()=>{this._deserializedViewMode&&this.webMap&&this.webScene&&(this._deserializedViewModePromise=this.switchViewMode(this._deserializedViewMode),await this._deserializedViewModePromise,this._deserializedViewMode=void 0,this._deserializedViewModePromise=void 0),await this._applyMapProperties(e,this.map),this._deserializedMapPromise=void 0})();else this._deferredProperties={...this._deferredProperties,map:e}}},requestHelper:{serialize:!1}}}async _applyMapProperties(e,t,i){await parallelEach(this.basemapOptions.toArray(),(e=>e._createBackingBasemap()));let s=e;const a=this.basemapOptions.find((e=>basemapsAreEquivalent(e.basemap,s.baseMap)));a&&(t.basemap=a.basemap,s={...s,baseMap:{...s.baseMap,title:t.basemap.title}}),isWebScene(t)?await WebSceneJson.applyToEsriApiWebScene(s,t,i):await WebMapJson.applyToEsriApiMap(s,t,i)}_createFormatSettings(){return new FormatSettings}_createLayerExtensionCollection(){return new LayerExtensionCollectionImpl(this)}_createTableExtensionCollection(){return new TableExtensionCollectionImpl(this)}async _onInitialize(){var e;await super._onInitialize();const{basemapExtension:t,basemapOptions:i,groundExtension:s,webMap:a,webScene:n,map:o,...r}=null!==(e=this._deferredProperties)&&void 0!==e?e:{};if(i&&this.assignProperties({basemapOptions:i}),this.map||("scene"===this.initialViewMode?this._setMap(new((await import("@arcgis/core/WebScene")).default)):this._setMap(new((await import("@arcgis/core/WebMap")).default))),this.map.basemap&&this._onBasemapChange(),(a||n)&&await this._applyMapProperties("scene"===this.initialViewMode?n:a,this.map),t&&(this.assignProperties({basemapExtension:t}),await this.basemapExtension._createBackingBasemap()),s&&this.assignProperties({groundExtension:s}),this._webMapItem||this._webSceneItem){await Promise.all([load(this.map),load(this._webMapItem),load(this._webSceneItem)]),validatePortalItem(this._webMapItem,"webMap","Web Map"),validatePortalItem(this._webSceneItem,"webScene","Web Scene");const e=isWebScene(this.map)?this._webSceneItem:this._webMapItem;await this._loadAndApplyPortalItemData(e)}else await load(this.map);o&&await this._applyMapProperties(o,this.map),this.assignProperties(r),this._deferredProperties=void 0,this._initialBasemapExtension=this.basemapExtension,this._updateBookmarks(),this.contextMenu&&await this.contextMenu.initialize();for(const e of this.layerExtensions.toArray())await e._createBackingLayer();await Promise.all(this.tableExtensions.map((e=>e._createBackingTable())).toArray())}async _postInitialize(){await super._postInitialize(),await this._createStandardBasemapOptions(),await parallelEach(this.basemapOptions.toArray(),(e=>e._createBackingBasemap())),this.initialLayerPreset&&await this.initialLayerPreset.applyTo(this)}*_initializableChildCollections(){yield*super._initializableChildCollections();const e=new Collection(this.layerExtensions.filter((e=>!!e.layer)));e.remove=e=>{this.layerExtensions.remove(e)};const t=new Collection(this.tableExtensions.filter((e=>!!e.table)));if(t.remove=e=>{this.tableExtensions.remove(e)},yield e,yield t,this.basemapExtension){const e=new Collection;e.add(this.basemapExtension),yield e}const i=new Collection;i.add(this.groundExtension),yield i}_initMapFromProperties(e){const t=e.map;isMap(t)||isWebMap(t)||isWebScene(t)?this._setMap(t):"scene"===this.initialViewMode?e.webScene&&!isPortalItem(e.webScene)&&(this._deferredProperties={webScene:e.webScene,...this._deferredProperties}):e.webMap&&!isPortalItem(e.webMap)&&(this._deferredProperties={webMap:e.webMap,...this._deferredProperties})}_setMap(e){var t,i;isWebScene(e)?this._scene=e:this._map=e,this._currentMap=e,(null===(t=this.basemapExtension)||void 0===t?void 0:t.basemap)&&!e.basemap&&(e.basemap=this.basemapExtension.basemap),(null===(i=this.groundExtension)||void 0===i?void 0:i.ground)&&!e.ground&&(e.ground=this.groundExtension.ground),this._notifyChange("map")}async _loadAndApplyPortalItemData(e,t){var i;await load(e);const s=await e.fetchData();resolveRelativeHrefs(s,e),await this._inferLayerTypes(s),(null===(i=this.basemapExtension)||void 0===i?void 0:i.basemap)&&!t&&delete s.baseMap,GroundExtension.isDefaultGround(this.groundExtension.ground)||t||delete s.ground;const a=t||this.map;await load(a),await this._applyMapProperties(s,a,e),a.portalItem=e;const{viewpoint:n,spatialReference:o}=a.initialViewProperties;n&&n.targetGeometry&&!n.targetGeometry.spatialReference.equals(o)&&(a.initialViewProperties.viewpoint.targetGeometry=(await project([n.targetGeometry],o))[0]),n&&n.camera&&(n.camera.position.spatialReference=o.clone())}_onBasemapChange(){if(this._basemapExtension){if(this.basemapExtension.basemap==this.map.basemap)return;this._basemapExtension._setMapExtension(void 0)}if(this.map.basemap){let e=this.basemapOptions.find((e=>e.basemap===this.map.basemap));e||(e=BasemapExtension.create({basemap:this.map.basemap}),this._basemapOptions.addInternal(e,0)),e.mapExtension!==this&&e._setMapExtension(this),this._basemapExtension=e}else this._basemapExtension=void 0;this._notifyChange("basemapExtension")}_onGroundChange(){if(this._groundExtension){if(this.groundExtension.ground===this.map.ground)return void(this._groundExtensions.has(this.map.ground)||this._groundExtensions.set(this.map.ground,this.groundExtension));this.groundExtension._setMapExtension(void 0)}this._groundExtensions.has(this.map.ground)||this._groundExtensions.set(this.map.ground,new GroundExtension({ground:this.map.ground}));const e=this._groundExtensions.get(this.map.ground);e.mapExtension!==this&&e._setMapExtension(this),this._groundExtension=e,this._notifyChange("groundExtension")}async _inferLayerTypes(e){var t;const i=[];if(e.operationalLayers)for(const t of e.operationalLayers)i.push(this._inferLayerType(t));if(e.baseMap&&i.push(this._inferBasemapLayerTypes(e.baseMap)),e.hasOwnProperty("ground")&&i.push(this._inferGroundLayerTypes(e.ground)),null===(t=e.presentation)||void 0===t?void 0:t.slides)for(const t of e.presentation.slides)t.baseMap&&"string"!=typeof t.baseMap&&i.push(this._inferBasemapLayerTypes(t.baseMap));await Promise.all(i)}async _inferBasemapLayerTypes(e){const t=[];if(e.baseMapLayers)for(const i of e.baseMapLayers)t.push(this._inferLayerType(i));await Promise.all(t)}async _inferGroundLayerTypes(e){const t=[];if(e.layers)for(const i of e.layers)t.push(this._inferLayerType(i));await Promise.all(t)}async _inferLayerType(e){if(!e.layerType)if(e.type)e.layerType=e.type;else if(e.url){const t=e.url;if(t.match(".*MapServer/\\d{1,}/?$")||t.match(".*FeatureServer/\\d{1,}/?$"))e.layerType="ArcGISFeatureLayer";else if(t.match(".*StreamServer/?$"))e.layerType="ArcGISStreamLayer";else if(t.match(".*ImageServer/?$")){const i=await this._getLayerData(t);i.cacheType?"Map"===i.cacheType?e.layerType="ArcGISTiledImageServiceLayer":"Elevation"===i.cacheType&&(e.layerType="ArcGISTiledElevationServiceLayer"):e.layerType="ArcGISImageServiceLayer"}else if(t.match(".*MapServer/?$")){const i=await this._getLayerData(t);e.layerType=i.tileInfo?"ArcGISTiledMapServiceLayer":"ArcGISMapServiceLayer"}else if(t.match(".*\\.(csv|txt)$"))e.layerType="CSV";else if(t.match(".*\\.kml$"))e.layerType="KML";else if(t.match(".*SceneServer/layers/\\d{1,}/?$")){const i=await this._getLayerData(t);"3DObject"===i.layerType?e.layerType="ArcGISSceneServiceLayer":"IntegratedMesh"===i.layerType?e.layerType="IntegratedMeshLayer":"PointCloud"===i.layerType&&(e.layerType="PointCloudLayer")}else t.match(".*(\\.xml|rss/?)$")&&(e.layerType="GeoRSS")}else if(e.layers){e.layerType="GroupLayer";const t=[];for(const i of e.layers)t.push(this._inferLayerType(i));await Promise.all(t)}else e.templateUrl&&e.tileInfo?e.layerType="WebTiledLayer":e.featureCollection?e.layerType="ArcGISFeatureLayer":e.styleUrl?e.layerType="VectorTileLayer":e.mapUrl&&(e.layerType="WMS")}async _getLayerData(e){const t=await this.requestHelper.request(e,{query:{f:"json"}});if(!t||!t.data)throw new Error(`Response to request for url ${e} was invalid.`);return t.data}async _createStandardBasemapOptions(){const e=this._spatialReference;!this._basemapOptions.isExplicitlyModified&&e&&e.isWebMercator&&await parallelEach([WellKnownBasemap.SATELLITE,WellKnownBasemap.HYBRID_VECTOR,WellKnownBasemap.STREETS_VECTOR,WellKnownBasemap.TOPO_VECTOR,WellKnownBasemap.STREETS_NAVIGATION_VECTOR,WellKnownBasemap.STREETS_NIGHT_VECTOR,WellKnownBasemap.TERRAIN_VECTOR,WellKnownBasemap.DARK_GRAY_VECTOR,WellKnownBasemap.GRAY_VECTOR,WellKnownBasemap.NATIONAL_GEOGRAPHIC,WellKnownBasemap.OCEANS_VECTOR,WellKnownBasemap.OPEN_STREET_MAP_VECTOR],(async e=>{const t=await createStandardBasemap(e);basemapsAreEquivalent(this.map.basemap,t)?this._basemapOptions.addInternal(this.basemapExtension):this._basemapOptions.addInternal(BasemapExtension.create({basemap:t}),void 0,!1)}))}_ensureIsBasemapOption(e){const t=this.basemapOptions.findIndex((t=>t.basemap===e.basemap));t>=0?this._basemapOptions.getItemAt(t)!==e&&(this._basemapOptions.removeAtInternal(t),this._basemapOptions.addInternal(e,t)):this._basemapOptions.addInternal(e,0)}_updateBookmarks(){var e,t,i;this.bookmarks.removeMany(this.bookmarks.filter((e=>"map"===e.source))),isWebMap(this.map)&&(null===(e=this.map.bookmarks)||void 0===e?void 0:e.length)>0?this.map.bookmarks.forEach((e=>{const t=toEsriApiGeometry(e.extent),i=new EsriViewpoint({targetGeometry:t});this.bookmarks.add(new Bookmark({source:"map",title:e.name,viewpoint:i}))})):isWebScene(this.map)&&(null===(i=null===(t=this.map.presentation)||void 0===t?void 0:t.slides)||void 0===i?void 0:i.length)>0&&this.map.presentation.slides.forEach((e=>{const t={source:"map",title:e.title.text,viewpoint:e.viewpoint},i=new Bookmark(t);this.bookmarks.add(i)}))}};MapExtension=__decorate([serializable],MapExtension);export{MapExtension};class LayerExtensionCollectionImpl extends LayerExtensionCollectionBase{constructor(e){super(e,"map.layers")}get _mapExtension(){return this._parent}toJSON(){const e=[];return this.forEach((t=>{e.push(`item://${encodeURIComponent(ItemType.LAYER_EXTENSION)}/${encodeURIComponent(t.id)}`)})),e}}class BasemapExtensionCollection extends InitializableCollectionProxy{constructor(e){super(new Collection),this.isExplicitlyModified=!1,this._mapExtension=e}add(e,t){super.add(e,t),this.isExplicitlyModified=!0,1===this.length&&this._mapExtension.map&&!this._mapExtension.basemapExtension&&(this._mapExtension.basemapExtension=e)}addMany(e,t){super.addMany(e,t),this.isExplicitlyModified=!0}addInternal(e,t,i=!0){const s=e=>{const t="-vector";return(null==e?void 0:e.endsWith(t))?e.substring(0,e.length-t.length):e};let a;if(e.basemap){const t=s(e.basemap.id);if(a=this.findIndex((e=>{var i;return s(null===(i=e.basemap)||void 0===i?void 0:i.id)===t})),isStandardBasemap(e.basemap)&&a>=0){if(!i)return;super.removeAt(a)}}super.add(e,null!=t?t:a>=0?a:void 0)}removeAt(e){const t=super.removeAt(e);return t&&(this.isExplicitlyModified=!0,t===this._mapExtension.basemapExtension&&(e<this.length?this._mapExtension.basemapExtension=this.getItemAt(e):this.length?this._mapExtension.basemapExtension=this.getItemAt(e-1):this._mapExtension.basemapExtension=void 0)),t}removeAll(){this._mapExtension.basemapExtension=void 0,super.removeAll()}removeAtInternal(e){return super.removeAt(e)}removeAllInternal(){for(;this.length;)this.removeAtInternal(this.length-1)}reorder(e,t){return super.reorder(e,t),this.isExplicitlyModified=!0,e}reorderInternal(e,t){return super.reorder(e,t)}_itemIsInitialized(e){return super._itemIsInitialized(e)&&!!e.basemap}}class TableExtensionCollectionImpl extends InitializableCollectionProxy{constructor(e){super(),this._tableExtensionMap=new WeakMap,this._uninitializedTableExtensions=new Set,this._mapExtension=e,onCollectionPropertyChange(this._mapExtension,"map.tables",(e=>{const t={added:(e.added||[]).map((e=>this._forTable(e))),moved:(e.moved||[]).map((e=>this._forTable(e))),removed:(e.removed||[]).map((e=>this._forTable(e))),target:this};this.emit("change",t)})),this._mapExtension.watch("map.tables.length",(()=>this._notifyChange("length")))}get _collection(){return this._tables.map((e=>this._forTable(e))).concat(Array.from(this._uninitializedTableExtensions))}get _tables(){var e,t;return null!==(t=null===(e=this._mapExtension.map)||void 0===e?void 0:e.tables)&&void 0!==t?t:new ReadOnlyCollection(new Collection)}toJSON(){const e=[];return this.forEach((t=>{e.push(`item://${encodeURIComponent(ItemType.TABLE_EXTENSION)}/${encodeURIComponent(t.id)}`)})),e}clone(){const e=new TableExtensionCollectionImpl(this._mapExtension);return e._tableExtensionMap=this._tableExtensionMap,e}findById(e){return checkArg("id",e).isNotMissing(),this.find((t=>t.id===e))}findByTableId(e){return checkArg("id",e).isNotMissing(),this.find((t=>t.table.id===e))}forTable(e){if(checkArg("table",e).isNotMissing(),this._tables.includes(e))return this._forTable(e)}add(e,t){if(checkArg("tableX",e).isNotMissing(),e.mapExtension&&e.mapExtension.tableExtensions.remove(e),e._setMapExtension(this._mapExtension),e.table){const i=this._tableExtensionMap.get(e.table);if(this._tableExtensionMap.set(e.table,e),i&&i!==e&&this._onRemoved(i),this._tables.includes(e.table))if(void 0===t){const t={added:[e],moved:[],removed:i?[i]:[],target:this};this.emit("change",t)}else this._tables.reorder(e.table,t);else this._tables.add(e.table,t)}else{this._uninitializedTableExtensions.add(e);const t={added:[e],moved:[],removed:[],target:this};this.emit("change",t)}this._onAdded(e)}removeAt(e){const t=this.getItemAt(e);if(void 0!==t){if(this._uninitializedTableExtensions.has(t)){this._uninitializedTableExtensions.delete(t);const e={added:[],moved:[],removed:[t],target:this};this.emit("change",e)}else this._tables.remove(t.table);return this._onRemoved(t),t}}reorder(e,t){if(e&&this._tables.includes(e.table))return this._tables.reorder(e.table,t),e}sort(e){this._tables.sort(((t,i)=>e(this._forTable(t),this._forTable(i))))}_itemIsInitialized(e){return super._itemIsInitialized(e)&&!!e.table}_onAdded(e){}_onRemoved(e){e._setMapExtension(void 0)}_forTable(e){for(const e of this._uninitializedTableExtensions)e._resolveTable(),e.table&&(this._tableExtensionMap.set(e.table,e),this._uninitializedTableExtensions.delete(e));if(!this._tableExtensionMap.has(e)){const t=TableExtension.create({table:e});this._tableExtensionMap.set(e,t),t._setMapExtension(this._mapExtension),this._onAdded(t)}return this._tableExtensionMap.get(e)}}class AllLayerExtensionCollectionImpl extends ReadOnlyInitializableCollection{constructor(e){super(),this._mapExtension=e}get _collection(){let e=this._mapExtension.layerExtensions.flatten((e=>isGroupLayerExtension(e)?e.layerExtensions:[]));return this._mapExtension.basemapExtension&&(e=e.concat(this._mapExtension.basemapExtension.baseLayerExtensions.toArray()).concat(this._mapExtension.basemapExtension.referenceLayerExtensions.toArray())),e=e.concat(this._mapExtension.groundExtension.layerExtensions.toArray()),e}findById(e){return checkArg("id",e).isNotMissing(),this.find((t=>t.id===e))}findByLayerId(e){return checkArg("id",e).isNotMissing(),this.find((t=>t.layer.id===e))}forLayer(e){return checkArg("layer",e).isNotMissing(),this.findByLayerId(e.id)}emit(e,t){if("change"===e){const i=new Collection;i.addMany(t.added);const s=i.flatten((e=>isGroupLayerExtension(e)?e.layerExtensions:[])).toArray(),a=new Collection;a.addMany(t.removed);const n=a.flatten((e=>isGroupLayerExtension(e)?e.layerExtensions:[])).toArray(),o=new Collection;o.addMany(t.moved);const r=o.flatten((e=>isGroupLayerExtension(e)?e.layerExtensions:[])).toArray();super.emit(e,{added:s,removed:n,moved:r,target:this})}return super.emit(e,t)}_itemIsInitialized(e){return super._itemIsInitialized(e)&&!!e.layer}}function toPortalItem(e){if("object"!=typeof e||!e||!e.baseMap)return toPortalItemBase(e)}function isPortalItem(e){return"object"!=typeof e||e&&!e.baseMap}function validatePortalItem(e,t,i){if((null==e?void 0:e.type)&&e.type!==i)throw new Error(`Invalid portal item type "${e.type}" for property ${t}.`)}
@@ -1 +1 @@
1
- import{__decorate}from"tslib";import{MapServiceLayer as PortalMapServiceLayer}from"../portal/MapServiceLayer.js";import{serializable}from"../support/Serializable.js";import{isMapImageLayer}from"../utilities/_layers.js";import{MapImageSublayerExtension}from"./MapImageSublayerExtension.js";import{LayerExtension,LayerExtensionSchema}from"./_LayerExtension.js";let MapImageLayerExtension=class extends LayerExtension{get layer(){return super.layer}get sublayerExtensions(){return super.sublayerExtensions}get supportsSublayers(){return!0}_getProjectWebmapJSON(){const e=super._getProjectWebmapJSON();if(!e||this.dynamicallyAddedLayer)return e;const{visibleLayers:r,layers:a}=PortalMapServiceLayer.fromEsriApiMapImageLayer(this.layer);return e.visibleLayers=r,a&&(e.layers=a.map((e=>{var r,a,i,t,n,o,l,s;const{id:y,layerDefinition:p}=e,c={id:y},{definitionExpression:m,drawingInfo:u}=null!=p?p:{};return m&&(c.layerDefinition={...c.layerDefinition,definitionExpression:m}),u&&(null===(i=null===(a=null===(r=this.layer)||void 0===r?void 0:r.capabilities)||void 0===a?void 0:a.exportMap)||void 0===i?void 0:i.supportsDynamicLayers)&&(c.layerDefinition={...c.layerDefinition,drawingInfo:u}),(null===(o=null===(n=null===(t=this.layer)||void 0===t?void 0:t.capabilities)||void 0===n?void 0:n.exportMap)||void 0===o?void 0:o.supportsSublayerVisibility)&&void 0!==(null==u?void 0:u.transparency)&&(c.layerDefinition=null!==(l=c.layerDefinition)&&void 0!==l?l:{},c.layerDefinition.drawingInfo=null!==(s=c.layerDefinition.drawingInfo)&&void 0!==s?s:{},c.layerDefinition.drawingInfo.transparency=u.transparency),c}))),e}_createSublayerExtension(e){return new MapImageSublayerExtension(e)}_getSerializableProperties(){const e=super._getSerializableProperties();return{...e,layer:{...this._toPropertyDef(e.layer),default:{layerType:"ArcGISMapServiceLayer"}}}}_isSupportedLayer(e){return isMapImageLayer(e)}_createSchema(){return new MapImageLayerSchema(this)}async _applyPortalItemProperties(e){if("Map Service"!==e.type)throw new Error(`Cannot create Map Image Layer from Portal item that has type: ${e.type}`);if(e.typeKeywords.includes("Tiled"))throw new Error("Cannot create Map Image Layer from Portal item that references Tile Map Service");const r={layerType:"ArcGISMapServiceLayer",url:e.url},a=await e.fetchData();return(null==a?void 0:a.layers)&&(r.layers=a.layers),PortalMapServiceLayer.applyToEsriApiLayer(r,this.layer)}};MapImageLayerExtension=__decorate([serializable],MapImageLayerExtension);export{MapImageLayerExtension};let MapImageLayerSchema=class extends LayerExtensionSchema{_getPropertyBindings(){return{spatialReference:{property:"spatialReference",readonly:!0}}}};MapImageLayerSchema=__decorate([serializable],MapImageLayerSchema);
1
+ import{__decorate}from"tslib";import{MapServiceLayer as PortalMapServiceLayer}from"../portal/MapServiceLayer.js";import{serializable}from"../support/Serializable.js";import{isMapImageLayer}from"../utilities/_layers.js";import{MapImageSublayerExtension}from"./MapImageSublayerExtension.js";import{LayerExtension,LayerExtensionSchema}from"./_LayerExtension.js";let MapImageLayerExtension=class extends LayerExtension{get layer(){return super.layer}get sublayerExtensions(){return super.sublayerExtensions}get supportsSublayers(){return!0}_getProjectWebmapJSON(){const e=super._getProjectWebmapJSON();if(!e||this.dynamicallyAddedLayer)return e;const{visibleLayers:r,layers:a}=PortalMapServiceLayer.fromEsriApiMapImageLayer(this.layer);return e.visibleLayers=r,a&&(e.layers=a.map((e=>{var r,a,i;const{id:t,layerDefinition:n}=e,s={id:t},{definitionExpression:o,drawingInfo:l}=null!=n?n:{};return o&&(s.layerDefinition={...s.layerDefinition,definitionExpression:o}),l&&(null===(i=null===(a=null===(r=this.layer)||void 0===r?void 0:r.capabilities)||void 0===a?void 0:a.exportMap)||void 0===i?void 0:i.supportsDynamicLayers)&&(s.layerDefinition={...s.layerDefinition,drawingInfo:l}),s}))),e}_createSublayerExtension(e){return new MapImageSublayerExtension(e)}_getSerializableProperties(){const e=super._getSerializableProperties();return{...e,layer:{...this._toPropertyDef(e.layer),default:{layerType:"ArcGISMapServiceLayer"}}}}_isSupportedLayer(e){return isMapImageLayer(e)}_createSchema(){return new MapImageLayerSchema(this)}async _applyPortalItemProperties(e){if("Map Service"!==e.type)throw new Error(`Cannot create Map Image Layer from Portal item that has type: ${e.type}`);if(e.typeKeywords.includes("Tiled"))throw new Error("Cannot create Map Image Layer from Portal item that references Tile Map Service");const r={layerType:"ArcGISMapServiceLayer",url:e.url},a=await e.fetchData();return(null==a?void 0:a.layers)&&(r.layers=a.layers),PortalMapServiceLayer.applyToEsriApiLayer(r,this.layer)}};MapImageLayerExtension=__decorate([serializable],MapImageLayerExtension);export{MapImageLayerExtension};let MapImageLayerSchema=class extends LayerExtensionSchema{_getPropertyBindings(){return{spatialReference:{property:"spatialReference",readonly:!0}}}};MapImageLayerSchema=__decorate([serializable],MapImageLayerSchema);
@@ -0,0 +1,15 @@
1
+ import type Layer from "@arcgis/core/layers/Layer";
2
+ import { LayerExtension, LayerExtensionProperties } from "./_LayerExtension.js";
3
+ /**
4
+ * Extends the capabilities of an unsupported Esri layer. Eg UnsupportedLayer
5
+ * ({@link https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-UnsupportedLayer.html})
6
+ * or one of Esri's widget specific layers.
7
+ */
8
+ export declare class UnsupportedLayerExtension<TProperties extends LayerExtensionProperties = LayerExtensionProperties> extends LayerExtension<TProperties> {
9
+ protected _isSupportedLayer(layer: Layer): boolean;
10
+ /**
11
+ * Indicates that the layer was added dynamically.
12
+ */
13
+ get dynamicallyAddedLayer(): boolean;
14
+ set dynamicallyAddedLayer(value: boolean);
15
+ }
@@ -0,0 +1 @@
1
+ import{__decorate}from"tslib";import{serializable}from"../support/Serializable.js";import{LayerExtension}from"./_LayerExtension.js";let UnsupportedLayerExtension=class extends LayerExtension{_isSupportedLayer(e){return!0}get dynamicallyAddedLayer(){return!0}set dynamicallyAddedLayer(e){}};UnsupportedLayerExtension=__decorate([serializable],UnsupportedLayerExtension);export{UnsupportedLayerExtension};
@@ -1 +1 @@
1
- import{ArgumentError}from"../../ArgumentError.js";import{FeatureLayer as PortalFeatureLayer}from"../../portal/FeatureLayer.js";import{WebTileLayer as PortalWebTileLayer}from"../../portal/WebTileLayer.js";import{isBuildingSceneLayer,isCSVLayer,isElevationLayer,isFeatureLayer,isGeoRssLayer,isGraphicsLayer,isGroupLayer,isImageryLayer,isImageryTileLayer,isIntegratedMeshLayer,isKMLLayer,isMapImageLayer,isOpenStreetMapLayer,isPointCloudLayer,isSceneLayer,isStreamLayer,isTileLayer,isVectorTileLayer,isWebTileLayer,isWMSLayer,isWMTSLayer}from"../../utilities/_layers.js";import{checkArg}from"../../utilities/checkArg.js";import{Collection}from"../../utilities/collection.js";import{BuildingSceneLayerExtension}from"../BuildingSceneLayerExtension.js";import{CSVLayerExtension}from"../CSVLayerExtension.js";import{ElevationLayerExtension}from"../ElevationLayerExtension.js";import{FeatureCollectionLayerExtension}from"../FeatureCollectionLayerExtension.js";import{FeatureLayerExtension}from"../FeatureLayerExtension.js";import{GeoRSSLayerExtension}from"../GeoRSSLayerExtension.js";import{GraphicsLayerExtension}from"../GraphicsLayerExtension.js";import{GroupLayerExtension}from"../GroupLayerExtension.js";import{ImageryLayerExtension}from"../ImageryLayerExtension.js";import{ImageryTileLayerExtension}from"../ImageryTileLayerExtension.js";import{IntegratedMeshLayerExtension}from"../IntegratedMeshLayerExtension.js";import{KMLLayerExtension}from"../KMLLayerExtension.js";import{MapImageLayerExtension}from"../MapImageLayerExtension.js";import{OpenStreetMapLayerExtension}from"../OpenStreetMapLayerExtension.js";import{PointCloudLayerExtension}from"../PointCloudLayerExtension.js";import{SceneLayerExtension}from"../SceneLayerExtension.js";import{StreamLayerExtension}from"../StreamLayerExtension.js";import{TileLayerExtension}from"../TileLayerExtension.js";import{VectorTileLayerExtension}from"../VectorTileLayerExtension.js";import{WMSLayerExtension}from"../WMSLayerExtension.js";import{WMTSLayerExtension}from"../WMTSLayerExtension.js";import{WebTileLayerExtension}from"../WebTileLayerExtension.js";export class DefaultLayerExtensionFactory{constructor(){}create(e){if(checkArg("properties",e).isNotMissing(),checkArg("properties.layer",e.layer).isNotMissing(),isBuildingSceneLayer(e.layer))return new BuildingSceneLayerExtension(e);if(isCSVLayer(e.layer))return new CSVLayerExtension(e);if(isElevationLayer(e.layer))return new ElevationLayerExtension(e);if(isStreamLayer(e.layer))return new StreamLayerExtension(e);if(isFeatureLayer(e.layer)){const{layer:r}=e;return Collection.isCollection(r.source)?new FeatureCollectionLayerExtension(e):new FeatureLayerExtension(e)}if(isGeoRssLayer(e.layer))return new GeoRSSLayerExtension(e);if(isGraphicsLayer(e.layer))return new GraphicsLayerExtension(e);if(isGroupLayer(e.layer))return new GroupLayerExtension(e);if(isImageryLayer(e.layer))return new ImageryLayerExtension(e);if(isIntegratedMeshLayer(e.layer))return new IntegratedMeshLayerExtension(e);if(isKMLLayer(e.layer))return new KMLLayerExtension(e);if(isMapImageLayer(e.layer))return new MapImageLayerExtension(e);if(isOpenStreetMapLayer(e.layer))return new OpenStreetMapLayerExtension(e);if(isPointCloudLayer(e.layer))return new PointCloudLayerExtension(e);if(isSceneLayer(e.layer))return new SceneLayerExtension(e);if(isTileLayer(e.layer))return new TileLayerExtension(e);if(isImageryTileLayer(e.layer))return new ImageryTileLayerExtension(e);if(isVectorTileLayer(e.layer))return new VectorTileLayerExtension(e);if(isWebTileLayer(e.layer))return new WebTileLayerExtension(e);if(isWMSLayer(e.layer))return new WMSLayerExtension(e);if(isWMTSLayer(e.layer))return new WMTSLayerExtension(e);if(e.layer.layerType)switch(e.layer.layerType){case"BuildingSceneLayer":return new BuildingSceneLayerExtension(e);case"CSV":return new CSVLayerExtension(e);case"ArcGISTiledElevationServiceLayer":return new ElevationLayerExtension(e);case"ArcGISFeatureLayer":return PortalFeatureLayer.isGraphicsLayerJson(e.layer)||PortalFeatureLayer.isMapNotesLayer(e.layer)?new GraphicsLayerExtension(e):PortalFeatureLayer.isFeatureCollection(e.layer)?new FeatureCollectionLayerExtension(e):new FeatureLayerExtension(e);case"ArcGISAnnotationLayer":return e.layer.layerType="ArcGISFeatureLayer",e.layer.$layerSubType="ArcGISAnnotationLayer",new FeatureLayerExtension(e);case"GeoRSS":return new GeoRSSLayerExtension(e);case"GroupLayer":return new GroupLayerExtension(e);case"ArcGISImageServiceLayer":case"ArcGISImageServiceVectorLayer":return new ImageryLayerExtension(e);case"IntegratedMeshLayer":return new IntegratedMeshLayerExtension(e);case"KML":return new KMLLayerExtension(e);case"ArcGISMapServiceLayer":return new MapImageLayerExtension(e);case"OpenStreetMap":return new OpenStreetMapLayerExtension(e);case"PointCloudLayer":return new PointCloudLayerExtension(e);case"ArcGISSceneServiceLayer":return new SceneLayerExtension(e);case"ArcGISStreamLayer":return new StreamLayerExtension(e);case"ArcGISTiledImageServiceLayer":return new ImageryTileLayerExtension(e);case"ArcGISTiledMapServiceLayer":return new TileLayerExtension(e);case"VectorTileLayer":return new VectorTileLayerExtension(e);case"WebTiledLayer":return PortalWebTileLayer.isTileLayerWMTS(e.layer)?new WMTSLayerExtension(e):new WebTileLayerExtension(e);case"WMS":return new WMSLayerExtension(e)}else if(e.layer.type&&"OpenStreetMap"===e.layer.type)return new OpenStreetMapLayerExtension(e);throw new ArgumentError("properties.layer","Unable to determine correct type of layer extension to create.")}}DefaultLayerExtensionFactory.instance=new DefaultLayerExtensionFactory;
1
+ import{ArgumentError}from"../../ArgumentError.js";import{FeatureLayer as PortalFeatureLayer}from"../../portal/FeatureLayer.js";import{WebTileLayer as PortalWebTileLayer}from"../../portal/WebTileLayer.js";import{isBuildingSceneLayer,isCSVLayer,isElevationLayer,isFeatureLayer,isGeoRssLayer,isGraphicsLayer,isGroupLayer,isImageryLayer,isImageryTileLayer,isIntegratedMeshLayer,isKMLLayer,isLayer,isMapImageLayer,isOpenStreetMapLayer,isPointCloudLayer,isSceneLayer,isStreamLayer,isTileLayer,isVectorTileLayer,isWebTileLayer,isWMSLayer,isWMTSLayer}from"../../utilities/_layers.js";import{checkArg}from"../../utilities/checkArg.js";import{Collection}from"../../utilities/collection.js";import{BuildingSceneLayerExtension}from"../BuildingSceneLayerExtension.js";import{CSVLayerExtension}from"../CSVLayerExtension.js";import{ElevationLayerExtension}from"../ElevationLayerExtension.js";import{FeatureCollectionLayerExtension}from"../FeatureCollectionLayerExtension.js";import{FeatureLayerExtension}from"../FeatureLayerExtension.js";import{GeoRSSLayerExtension}from"../GeoRSSLayerExtension.js";import{GraphicsLayerExtension}from"../GraphicsLayerExtension.js";import{GroupLayerExtension}from"../GroupLayerExtension.js";import{ImageryLayerExtension}from"../ImageryLayerExtension.js";import{ImageryTileLayerExtension}from"../ImageryTileLayerExtension.js";import{IntegratedMeshLayerExtension}from"../IntegratedMeshLayerExtension.js";import{KMLLayerExtension}from"../KMLLayerExtension.js";import{MapImageLayerExtension}from"../MapImageLayerExtension.js";import{OpenStreetMapLayerExtension}from"../OpenStreetMapLayerExtension.js";import{PointCloudLayerExtension}from"../PointCloudLayerExtension.js";import{SceneLayerExtension}from"../SceneLayerExtension.js";import{StreamLayerExtension}from"../StreamLayerExtension.js";import{TileLayerExtension}from"../TileLayerExtension.js";import{UnsupportedLayerExtension}from"../UnsupportedLayerExtension.js";import{VectorTileLayerExtension}from"../VectorTileLayerExtension.js";import{WMSLayerExtension}from"../WMSLayerExtension.js";import{WMTSLayerExtension}from"../WMTSLayerExtension.js";import{WebTileLayerExtension}from"../WebTileLayerExtension.js";export class DefaultLayerExtensionFactory{constructor(){}create(e){if(checkArg("properties",e).isNotMissing(),checkArg("properties.layer",e.layer).isNotMissing(),isLayer(e.layer)){if(isBuildingSceneLayer(e.layer))return new BuildingSceneLayerExtension(e);if(isCSVLayer(e.layer))return new CSVLayerExtension(e);if(isElevationLayer(e.layer))return new ElevationLayerExtension(e);if(isStreamLayer(e.layer))return new StreamLayerExtension(e);if(isFeatureLayer(e.layer)){const{layer:r}=e;return Collection.isCollection(r.source)?new FeatureCollectionLayerExtension(e):new FeatureLayerExtension(e)}return isGeoRssLayer(e.layer)?new GeoRSSLayerExtension(e):isGraphicsLayer(e.layer)?new GraphicsLayerExtension(e):isGroupLayer(e.layer)?new GroupLayerExtension(e):isImageryLayer(e.layer)?new ImageryLayerExtension(e):isIntegratedMeshLayer(e.layer)?new IntegratedMeshLayerExtension(e):isKMLLayer(e.layer)?new KMLLayerExtension(e):isMapImageLayer(e.layer)?new MapImageLayerExtension(e):isOpenStreetMapLayer(e.layer)?new OpenStreetMapLayerExtension(e):isPointCloudLayer(e.layer)?new PointCloudLayerExtension(e):isSceneLayer(e.layer)?new SceneLayerExtension(e):isTileLayer(e.layer)?new TileLayerExtension(e):isImageryTileLayer(e.layer)?new ImageryTileLayerExtension(e):isVectorTileLayer(e.layer)?new VectorTileLayerExtension(e):isWebTileLayer(e.layer)?new WebTileLayerExtension(e):isWMSLayer(e.layer)?new WMSLayerExtension(e):isWMTSLayer(e.layer)?new WMTSLayerExtension(e):new UnsupportedLayerExtension(e)}if(e.layer.layerType)switch(e.layer.layerType){case"BuildingSceneLayer":return new BuildingSceneLayerExtension(e);case"CSV":return new CSVLayerExtension(e);case"ArcGISTiledElevationServiceLayer":return new ElevationLayerExtension(e);case"ArcGISFeatureLayer":return PortalFeatureLayer.isGraphicsLayerJson(e.layer)||PortalFeatureLayer.isMapNotesLayer(e.layer)?new GraphicsLayerExtension(e):PortalFeatureLayer.isFeatureCollection(e.layer)?new FeatureCollectionLayerExtension(e):new FeatureLayerExtension(e);case"ArcGISAnnotationLayer":return e.layer.layerType="ArcGISFeatureLayer",e.layer.$layerSubType="ArcGISAnnotationLayer",new FeatureLayerExtension(e);case"GeoRSS":return new GeoRSSLayerExtension(e);case"GroupLayer":return new GroupLayerExtension(e);case"ArcGISImageServiceLayer":case"ArcGISImageServiceVectorLayer":return new ImageryLayerExtension(e);case"IntegratedMeshLayer":return new IntegratedMeshLayerExtension(e);case"KML":return new KMLLayerExtension(e);case"ArcGISMapServiceLayer":return new MapImageLayerExtension(e);case"OpenStreetMap":return new OpenStreetMapLayerExtension(e);case"PointCloudLayer":return new PointCloudLayerExtension(e);case"ArcGISSceneServiceLayer":return new SceneLayerExtension(e);case"ArcGISStreamLayer":return new StreamLayerExtension(e);case"ArcGISTiledImageServiceLayer":return new ImageryTileLayerExtension(e);case"ArcGISTiledMapServiceLayer":return new TileLayerExtension(e);case"VectorTileLayer":return new VectorTileLayerExtension(e);case"WebTiledLayer":return PortalWebTileLayer.isTileLayerWMTS(e.layer)?new WMTSLayerExtension(e):new WebTileLayerExtension(e);case"WMS":return new WMSLayerExtension(e)}else if(e.layer.type&&"OpenStreetMap"===e.layer.type)return new OpenStreetMapLayerExtension(e);throw new ArgumentError("properties.layer","Unable to determine correct type of layer extension to create.")}}DefaultLayerExtensionFactory.instance=new DefaultLayerExtensionFactory;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@vertigis/arcgis-extensions",
3
3
  "license": "SEE LICENSE IN LICENSE",
4
- "version": "34.2.2",
4
+ "version": "34.3.1",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "https://geocortex.visualstudio.com/Geocortex/_git/geocortex-api-ts"
@@ -50,6 +50,7 @@
50
50
  "alasql": "~1.7.3",
51
51
  "elasticlunr": "~0.9.5",
52
52
  "esri-proj-codes": "~1.0.3",
53
+ "json-stable-stringify": "~1.0.1",
53
54
  "jszip": "~3.7.1",
54
55
  "moment-timezone": "~0.5.33",
55
56
  "shpjs": "~4.0.2 ",
@@ -89,7 +90,6 @@
89
90
  "jest-util": "26.6.2",
90
91
  "jest-watch-typeahead": "0.6.4",
91
92
  "jsdom": "17.0.0",
92
- "json-stable-stringify": "1.0.1",
93
93
  "lint-staged": "11.2.0",
94
94
  "nock": "13.1.3",
95
95
  "node-fetch": "2.6.1",
@@ -105,7 +105,7 @@
105
105
  "whatwg-fetch": "3.6.2"
106
106
  },
107
107
  "peerDependencies": {
108
- "@arcgis/core": "~4.19.0",
108
+ "@arcgis/core": "~4.21.0",
109
109
  "tslib": "^2.3.1"
110
110
  },
111
111
  "type": "module",
@@ -1 +1 @@
1
- import{Warning as EsriWarning}from"../support/_esriInternal.js";import{isFeatureLayer,isMapImageSublayer as isEsriSublayer,isPointCloudLayer,isSceneLayer}from"../utilities/_layers.js";import{checkArg}from"../utilities/checkArg.js";import{LabelingInfo}from"./LabelingInfo.js";import{PointCloudRenderer}from"./PointCloudRenderer.js";import{Renderer}from"./Renderer.js";export var DrawingInfo;!function(e){e.applyToEsriApiLayer=async function(e,r){checkArg("json",e).isNotMissing(),checkArg("layer",r).isNotMissing(),(isFeatureLayer(r)||isSceneLayer(r)||isEsriSublayer(r))&&(e.hasOwnProperty("labelingInfo")&&e.labelingInfo&&(r.labelingInfo=[],e.labelingInfo.forEach((e=>{r.labelingInfo.push(LabelingInfo.toEsriApiLabelClass(e))}))),e.hasOwnProperty("showLabels")&&(r.labelsVisible=e.showLabels)),e.hasOwnProperty("renderer")&&(e.renderer?isPointCloudLayer(r)?r.renderer=await PointCloudRenderer.toEsriApiPointCloudRenderer(e.renderer):r.renderer=Renderer.toEsriApiRenderer(e.renderer):r.renderer=void 0,!r.renderer&&e.renderer&&r.loadWarnings.push(new EsriWarning("renderer:unsupported",`Renderers of type '${e.renderer.type||"unknown"}' are not supported`,{definition:e.renderer}))),e.hasOwnProperty("transparency")&&(r.opacity=1-e.transparency/100)},e.fromEsriApiLayer=function(e){checkArg("layer",e).isNotMissing();const r={};return e.renderer&&(r.renderer=Renderer.fromEsriApiRenderer(e.renderer)),void 0!==e.opacity&&isEsriSublayer(e)&&(r.transparency=100*(1-e.opacity)),e.labelingInfo&&e.labelingInfo.length&&(r.labelingInfo=[],e.labelingInfo.forEach((e=>{r.labelingInfo.push(LabelingInfo.fromEsriApiLabelClass(e))}))),void 0!==e.labelsVisible&&null!==e.labelsVisible&&(r.showLabels=e.labelsVisible),r}}(DrawingInfo||(DrawingInfo={}));
1
+ import stableStringify from"json-stable-stringify";import{Warning as EsriWarning}from"../support/_esriInternal.js";import{isFeatureLayer,isMapImageSublayer as isEsriSublayer,isPointCloudLayer,isSceneLayer}from"../utilities/_layers.js";import{checkArg}from"../utilities/checkArg.js";import{LabelingInfo}from"./LabelingInfo.js";import{PointCloudRenderer}from"./PointCloudRenderer.js";import{Renderer}from"./Renderer.js";export var DrawingInfo;!function(e){e.applyToEsriApiLayer=async function(e,r){checkArg("json",e).isNotMissing(),checkArg("layer",r).isNotMissing(),(isFeatureLayer(r)||isSceneLayer(r)||isEsriSublayer(r))&&(e.hasOwnProperty("labelingInfo")&&e.labelingInfo&&(r.labelingInfo=[],e.labelingInfo.forEach((e=>{r.labelingInfo.push(LabelingInfo.toEsriApiLabelClass(e))}))),e.hasOwnProperty("showLabels")&&(r.labelsVisible=e.showLabels)),e.hasOwnProperty("renderer")&&(e.renderer?isPointCloudLayer(r)?r.renderer=await PointCloudRenderer.toEsriApiPointCloudRenderer(e.renderer):r.renderer=Renderer.toEsriApiRenderer(e.renderer):r.renderer=void 0,!r.renderer&&e.renderer&&r.loadWarnings.push(new EsriWarning("renderer:unsupported",`Renderers of type '${e.renderer.type||"unknown"}' are not supported`,{definition:e.renderer}))),e.hasOwnProperty("transparency")&&(r.opacity=1-e.transparency/100)},e.fromEsriApiLayer=function(e){var r,i,n,o,s,a,l,t;checkArg("layer",e).isNotMissing();const d={};return isEsriSublayer(e)&&!(null===(n=null===(i=null===(r=e.layer)||void 0===r?void 0:r.capabilities)||void 0===i?void 0:i.exportMap)||void 0===n?void 0:n.supportsDynamicLayers)||(e.renderer&&(isEsriSublayer(e)&&"map-layer"===e.source.type&&(null===(s=null===(o=e.sourceJSON)||void 0===o?void 0:o.drawingInfo)||void 0===s?void 0:s.renderer)&&stableStringify(null===(a=e.renderer)||void 0===a?void 0:a.toJSON())===stableStringify(Renderer.toEsriApiRenderer(null===(t=null===(l=e.sourceJSON)||void 0===l?void 0:l.drawingInfo)||void 0===t?void 0:t.renderer).toJSON())||(d.renderer=Renderer.fromEsriApiRenderer(e.renderer))),void 0!==e.opacity&&isEsriSublayer(e)&&(d.transparency=100*(1-e.opacity)),e.labelingInfo&&e.labelingInfo.length&&(d.labelingInfo=[],e.labelingInfo.forEach((e=>{d.labelingInfo.push(LabelingInfo.fromEsriApiLabelClass(e))}))),void 0!==e.labelsVisible&&null!==e.labelsVisible&&(d.showLabels=e.labelsVisible)),d}}(DrawingInfo||(DrawingInfo={}));
@@ -1 +1 @@
1
- import{isBuildingSceneLayer,isCSVLayer,isElevationLayer,isFeatureLayer,isGeoRssLayer,isGraphicsLayer,isGroupLayer,isImageryLayer,isImageryTileLayer,isIntegratedMeshLayer,isKMLLayer,isMapImageLayer,isOpenStreetMapLayer,isPointCloudLayer,isSceneLayer,isStreamLayer,isTiledImageServiceLayer,isTiledMapServiceLayer,isTileLayer,isVectorTileLayer,isWebTileLayer,isWMSLayer,isWMTSLayer,layersAreEquivalent}from"../utilities/_layers.js";import{checkArg}from"../utilities/checkArg.js";import{compareAsync}from"../utilities/collection.js";import{BuildingSceneLayer}from"./BuildingSceneLayer.js";import{CSVLayer}from"./CSVLayer.js";import{ElevationLayer}from"./ElevationLayer.js";import{FeatureLayer}from"./FeatureLayer.js";import{GeoRSSLayer}from"./GeoRSSLayer.js";import{GroupLayer}from"./GroupLayer.js";import{ImageServiceLayer}from"./ImageServiceLayer.js";import{IntegratedMeshLayer}from"./IntegratedMeshLayer.js";import{KMLLayer}from"./KMLLayer.js";import{MapServiceLayer}from"./MapServiceLayer.js";import{OpenStreetMapLayer}from"./OpenStreetMapLayer.js";import{PointCloudLayer}from"./PointCloudLayer.js";import{SceneLayer}from"./SceneLayer.js";import{StreamLayer}from"./StreamLayer.js";import{TiledImageServiceLayer}from"./TiledImageServiceLayer.js";import{TiledMapServiceLayer}from"./TiledMapServiceLayer.js";import{VectorTileLayer}from"./VectorTileLayer.js";import{WMSLayer}from"./WMSLayer.js";import{WebTileLayer}from"./WebTileLayer.js";import{LayerBase}from"./_LayerBase.js";export{LayerBase}from"./_LayerBase.js";const layerClassHandlers=new Map;function getFromEsriApiLayerFunction(e){return isCSVLayer(e)?CSVLayer.fromEsriApiCSVLayer:isStreamLayer(e)?StreamLayer.fromEsriApiStreamLayer:isFeatureLayer(e)?FeatureLayer.fromEsriApiFeatureLayer:isGeoRssLayer(e)?GeoRSSLayer.fromEsriApiLayer:isGraphicsLayer(e)?FeatureLayer.fromEsriApiGraphicsLayer:isImageryLayer(e)?ImageServiceLayer.fromEsriApiImageryLayer:isImageryTileLayer(e)?TiledImageServiceLayer.fromEsriApiTileLayer:isKMLLayer(e)?KMLLayer.fromEsriApiKMLLayer:isMapImageLayer(e)?MapServiceLayer.fromEsriApiMapImageLayer:isOpenStreetMapLayer(e)?OpenStreetMapLayer.fromEsriApiOpenStreetMapLayer:isWebTileLayer(e)?WebTileLayer.fromEsriApiLayer:isVectorTileLayer(e)?VectorTileLayer.fromEsriApiVectorTileLayer:isTiledImageServiceLayer(e)?TiledImageServiceLayer.fromEsriApiTileLayer:isTiledMapServiceLayer(e)?TiledMapServiceLayer.fromEsriApiTileLayer:isElevationLayer(e)?ElevationLayer.fromEsriApiElevationLayer:isSceneLayer(e)?SceneLayer.fromEsriApiSceneLayer:isPointCloudLayer(e)?PointCloudLayer.fromEsriApiPointCloudLayer:isIntegratedMeshLayer(e)?IntegratedMeshLayer.fromEsriApiIntegratedMeshLayer:isGroupLayer(e)?GroupLayer.fromEsriApiGroupLayer:isWMSLayer(e)?WMSLayer.fromEsriApiLayer:isWMTSLayer(e)?WebTileLayer.fromEsriApiLayer:isBuildingSceneLayer(e)?BuildingSceneLayer.fromEsriApiBuildingSceneLayer:unsupportedFromEsriApiLayerFunction}function getCreateFunction(e){const r=layerClassHandlers.get(e);return r?r.createFunction:unsupportedCreateFunction}function getApplyFunction(e){const r=layerClassHandlers.get(e);return r?r.applyFunction:unsupportedApplyFunction}async function unsupportedCreateFunction(e){return new((await import("@arcgis/core/layers/UnsupportedLayer")).default)}async function unsupportedApplyFunction(e,r){console.warn(`Layer type: '${e.layerType||e.type}' is unsupported.`)}function unsupportedFromEsriApiLayerFunction(e){console.warn(`Layer type: '${e?e.declaredClass:""}' is unsupported.`)}LayerBase.toEsriApiLayer=async(e,r)=>{checkArg("layerJson",e).isNotMissing();const a=e.layerType||e.type;checkArg("layerJson",e).satisfies((()=>!!a),"Layer JSON must have a valid 'layerType' property.");return getCreateFunction(a)(e,r)},LayerBase.applyToEsriApiLayer=async(e,r,a)=>{checkArg("layerJson",e).isNotMissing(),checkArg("layer",r).isNotMissing();const i=e.layerType||e.type;let y=LayerBase.getLayerType(r);"ArcGISTiledImageServiceLayer"===i&&(y=i),checkArg("layerJson",e).satisfies((()=>!i||i===y),"The layer's type must match the 'layerType' property in the layer JSON.");return getApplyFunction(y)(e,r,a)},LayerBase.applyToEsriApiLayers=async(e,r,a)=>compareAsync(e,r,{onNew:async(r,i)=>{e.add(await LayerBase.toEsriApiLayer(r,a),i)},onMatch:async(r,i,y,s)=>{y!==s&&e.reorder(r,s),await LayerBase.applyToEsriApiLayer(i,r,a)},onMissing:r=>{e.remove(r)},equals:(e,r)=>layersAreEquivalent(e,r)}),LayerBase.getLayerType=e=>{if(isCSVLayer(e))return"CSV";if(isStreamLayer(e))return"ArcGISStreamLayer";if(isFeatureLayer(e)||isGraphicsLayer(e))return"ArcGISFeatureLayer";if(isGeoRssLayer(e))return"GeoRSS";if(isImageryLayer(e))return"ArcGISImageServiceLayer";if(isImageryTileLayer(e))return"ArcGISTiledImageServiceLayer";if(isKMLLayer(e))return"KML";if(isMapImageLayer(e))return"ArcGISMapServiceLayer";if(isOpenStreetMapLayer(e))return"OpenStreetMap";if(isWebTileLayer(e))return"WebTiledLayer";if(isVectorTileLayer(e))return"VectorTileLayer";if(isTiledImageServiceLayer(e))return"ArcGISTiledImageServiceLayer";if(isTileLayer(e))return"ArcGISTiledMapServiceLayer";if(isElevationLayer(e))return"ArcGISTiledElevationServiceLayer";if(isSceneLayer(e))return"ArcGISSceneServiceLayer";if(isPointCloudLayer(e))return"PointCloudLayer";if(isIntegratedMeshLayer(e))return"IntegratedMeshLayer";if(isGroupLayer(e))return"GroupLayer";if(isWMSLayer(e))return"WMS";if(isWMTSLayer(e))return"WebTiledLayer";if(isBuildingSceneLayer(e))return"BuildingSceneLayer";throw new Error(`Unknown layer type for ESRI layer: ${e}`)},LayerBase.fromEsriApiLayer=e=>getFromEsriApiLayerFunction(e)(e),LayerBase.registerDefaultClassHandlers=()=>{layerClassHandlers.clear(),layerClassHandlers.set("ArcGISFeatureLayer",{createFunction:FeatureLayer.toEsriApiLayer,applyFunction:FeatureLayer.applyToEsriApiLayer}),layerClassHandlers.set("ArcGISImageServiceLayer",{createFunction:ImageServiceLayer.toEsriApiLayer,applyFunction:ImageServiceLayer.applyToEsriApiLayer}),layerClassHandlers.set("ArcGISImageServiceVectorLayer",{createFunction:ImageServiceLayer.toEsriApiLayer,applyFunction:ImageServiceLayer.applyToEsriApiLayer}),layerClassHandlers.set("ArcGISMapServiceLayer",{createFunction:MapServiceLayer.toEsriApiLayer,applyFunction:MapServiceLayer.applyToEsriApiLayer}),layerClassHandlers.set("ArcGISStreamLayer",{createFunction:StreamLayer.toEsriApiLayer,applyFunction:StreamLayer.applyToEsriApiLayer}),layerClassHandlers.set("ArcGISTiledElevationServiceLayer",{createFunction:ElevationLayer.toEsriApiLayer,applyFunction:ElevationLayer.applyToEsriApiLayer}),layerClassHandlers.set("ArcGISTiledImageServiceLayer",{createFunction:TiledImageServiceLayer.toEsriApiLayer,applyFunction:TiledImageServiceLayer.applyToEsriApiLayer}),layerClassHandlers.set("ArcGISTiledMapServiceLayer",{createFunction:TiledMapServiceLayer.toEsriApiLayer,applyFunction:TiledMapServiceLayer.applyToEsriApiLayer}),layerClassHandlers.set("OpenStreetMap",{createFunction:OpenStreetMapLayer.toEsriApiLayer,applyFunction:OpenStreetMapLayer.applyToEsriApiLayer}),layerClassHandlers.set("VectorTileLayer",{createFunction:VectorTileLayer.toEsriApiLayer,applyFunction:VectorTileLayer.applyToEsriApiLayer}),layerClassHandlers.set("CSV",{createFunction:CSVLayer.toEsriApiLayer,applyFunction:CSVLayer.applyToEsriApiLayer}),layerClassHandlers.set("GeoRSS",{createFunction:GeoRSSLayer.toEsriApiLayer,applyFunction:GeoRSSLayer.applyToEsriApiLayer}),layerClassHandlers.set("WMS",{createFunction:WMSLayer.toEsriApiLayer,applyFunction:WMSLayer.applyToEsriApiLayer}),layerClassHandlers.set("KML",{createFunction:KMLLayer.toEsriApiKMLLayer,applyFunction:KMLLayer.applyToEsriApiKMLLayer}),layerClassHandlers.set("WebTiledLayer",{createFunction:WebTileLayer.toEsriApiLayer,applyFunction:WebTileLayer.applyToEsriApiLayer}),layerClassHandlers.set("IntegratedMeshLayer",{createFunction:IntegratedMeshLayer.toEsriApiLayer,applyFunction:IntegratedMeshLayer.applyToEsriApiLayer}),layerClassHandlers.set("GroupLayer",{createFunction:GroupLayer.toEsriApiLayer,applyFunction:GroupLayer.applyToEsriApiLayer}),layerClassHandlers.set("ArcGISSceneServiceLayer",{createFunction:SceneLayer.toEsriApiLayer,applyFunction:SceneLayer.applyToEsriApiLayer}),layerClassHandlers.set("PointCloudLayer",{createFunction:PointCloudLayer.toEsriApiLayer,applyFunction:PointCloudLayer.applyToEsriApiLayer}),layerClassHandlers.set("BuildingSceneLayer",{createFunction:BuildingSceneLayer.toEsriApiLayer,applyFunction:BuildingSceneLayer.applyToEsriApiLayer})},LayerBase.registerLayerClassHandler=(e,r,a)=>{layerClassHandlers.set(e,{createFunction:r,applyFunction:a})},LayerBase.registerDefaultClassHandlers();
1
+ import{isBuildingSceneLayer,isCSVLayer,isElevationLayer,isFeatureLayer,isGeoRssLayer,isGraphicsLayer,isGroupLayer,isImageryLayer,isImageryTileLayer,isIntegratedMeshLayer,isKMLLayer,isMapImageLayer,isOpenStreetMapLayer,isPointCloudLayer,isSceneLayer,isStreamLayer,isTiledImageServiceLayer,isTiledMapServiceLayer,isTileLayer,isVectorTileLayer,isWebTileLayer,isWMSLayer,isWMTSLayer,layersAreEquivalent}from"../utilities/_layers.js";import{checkArg}from"../utilities/checkArg.js";import{compareAsync}from"../utilities/collection.js";import{BuildingSceneLayer}from"./BuildingSceneLayer.js";import{CSVLayer}from"./CSVLayer.js";import{ElevationLayer}from"./ElevationLayer.js";import{FeatureLayer}from"./FeatureLayer.js";import{GeoRSSLayer}from"./GeoRSSLayer.js";import{GroupLayer}from"./GroupLayer.js";import{ImageServiceLayer}from"./ImageServiceLayer.js";import{IntegratedMeshLayer}from"./IntegratedMeshLayer.js";import{KMLLayer}from"./KMLLayer.js";import{MapServiceLayer}from"./MapServiceLayer.js";import{OpenStreetMapLayer}from"./OpenStreetMapLayer.js";import{PointCloudLayer}from"./PointCloudLayer.js";import{SceneLayer}from"./SceneLayer.js";import{StreamLayer}from"./StreamLayer.js";import{TiledImageServiceLayer}from"./TiledImageServiceLayer.js";import{TiledMapServiceLayer}from"./TiledMapServiceLayer.js";import{VectorTileLayer}from"./VectorTileLayer.js";import{WMSLayer}from"./WMSLayer.js";import{WebTileLayer}from"./WebTileLayer.js";import{LayerBase}from"./_LayerBase.js";export{LayerBase}from"./_LayerBase.js";const layerClassHandlers=new Map;function getFromEsriApiLayerFunction(e){return isCSVLayer(e)?CSVLayer.fromEsriApiCSVLayer:isStreamLayer(e)?StreamLayer.fromEsriApiStreamLayer:isFeatureLayer(e)?FeatureLayer.fromEsriApiFeatureLayer:isGeoRssLayer(e)?GeoRSSLayer.fromEsriApiLayer:isGraphicsLayer(e)?FeatureLayer.fromEsriApiGraphicsLayer:isImageryLayer(e)?ImageServiceLayer.fromEsriApiImageryLayer:isImageryTileLayer(e)?TiledImageServiceLayer.fromEsriApiTileLayer:isKMLLayer(e)?KMLLayer.fromEsriApiKMLLayer:isMapImageLayer(e)?MapServiceLayer.fromEsriApiMapImageLayer:isOpenStreetMapLayer(e)?OpenStreetMapLayer.fromEsriApiOpenStreetMapLayer:isWebTileLayer(e)?WebTileLayer.fromEsriApiLayer:isVectorTileLayer(e)?VectorTileLayer.fromEsriApiVectorTileLayer:isTiledImageServiceLayer(e)?TiledImageServiceLayer.fromEsriApiTileLayer:isTiledMapServiceLayer(e)?TiledMapServiceLayer.fromEsriApiTileLayer:isElevationLayer(e)?ElevationLayer.fromEsriApiElevationLayer:isSceneLayer(e)?SceneLayer.fromEsriApiSceneLayer:isPointCloudLayer(e)?PointCloudLayer.fromEsriApiPointCloudLayer:isIntegratedMeshLayer(e)?IntegratedMeshLayer.fromEsriApiIntegratedMeshLayer:isGroupLayer(e)?GroupLayer.fromEsriApiGroupLayer:isWMSLayer(e)?WMSLayer.fromEsriApiLayer:isWMTSLayer(e)?WebTileLayer.fromEsriApiLayer:isBuildingSceneLayer(e)?BuildingSceneLayer.fromEsriApiBuildingSceneLayer:unsupportedFromEsriApiLayerFunction}function getCreateFunction(e){const r=layerClassHandlers.get(e);return r?r.createFunction:unsupportedCreateFunction}function getApplyFunction(e){const r=layerClassHandlers.get(e);return r?r.applyFunction:unsupportedApplyFunction}async function unsupportedCreateFunction(e){return new((await import("@arcgis/core/layers/UnsupportedLayer")).default)}async function unsupportedApplyFunction(e,r){console.warn(`Layer type: '${e.layerType||e.type}' is unsupported.`)}function unsupportedFromEsriApiLayerFunction(e){console.warn(`Layer type: '${e?e.declaredClass:""}' is unsupported.`)}LayerBase.toEsriApiLayer=async(e,r)=>{checkArg("layerJson",e).isNotMissing();const a=e.layerType||e.type;checkArg("layerJson",e).satisfies((()=>!!a),"Layer JSON must have a valid 'layerType' property.");return getCreateFunction(a)(e,r)},LayerBase.applyToEsriApiLayer=async(e,r,a)=>{checkArg("layerJson",e).isNotMissing(),checkArg("layer",r).isNotMissing();const i=e.layerType||e.type;let y=LayerBase.getLayerType(r);"ArcGISTiledImageServiceLayer"===i&&(y=i),checkArg("layerJson",e).satisfies((()=>!i||i===y),"The layer's type must match the 'layerType' property in the layer JSON.");return getApplyFunction(y)(e,r,a)},LayerBase.applyToEsriApiLayers=async(e,r,a)=>compareAsync(e,r,{onNew:async(r,i)=>{e.add(await LayerBase.toEsriApiLayer(r,a),i)},onMatch:async(r,i,y,s)=>{y!==s&&e.reorder(r,s),await LayerBase.applyToEsriApiLayer(i,r,a)},onMissing:r=>{e.remove(r)},equals:(e,r)=>layersAreEquivalent(e,r)}),LayerBase.getLayerType=e=>isCSVLayer(e)?"CSV":isStreamLayer(e)?"ArcGISStreamLayer":isFeatureLayer(e)||isGraphicsLayer(e)?"ArcGISFeatureLayer":isGeoRssLayer(e)?"GeoRSS":isImageryLayer(e)?"ArcGISImageServiceLayer":isImageryTileLayer(e)?"ArcGISTiledImageServiceLayer":isKMLLayer(e)?"KML":isMapImageLayer(e)?"ArcGISMapServiceLayer":isOpenStreetMapLayer(e)?"OpenStreetMap":isWebTileLayer(e)?"WebTiledLayer":isVectorTileLayer(e)?"VectorTileLayer":isTiledImageServiceLayer(e)?"ArcGISTiledImageServiceLayer":isTileLayer(e)?"ArcGISTiledMapServiceLayer":isElevationLayer(e)?"ArcGISTiledElevationServiceLayer":isSceneLayer(e)?"ArcGISSceneServiceLayer":isPointCloudLayer(e)?"PointCloudLayer":isIntegratedMeshLayer(e)?"IntegratedMeshLayer":isGroupLayer(e)?"GroupLayer":isWMSLayer(e)?"WMS":isWMTSLayer(e)?"WebTiledLayer":isBuildingSceneLayer(e)?"BuildingSceneLayer":void 0,LayerBase.fromEsriApiLayer=e=>getFromEsriApiLayerFunction(e)(e),LayerBase.registerDefaultClassHandlers=()=>{layerClassHandlers.clear(),layerClassHandlers.set("ArcGISFeatureLayer",{createFunction:FeatureLayer.toEsriApiLayer,applyFunction:FeatureLayer.applyToEsriApiLayer}),layerClassHandlers.set("ArcGISImageServiceLayer",{createFunction:ImageServiceLayer.toEsriApiLayer,applyFunction:ImageServiceLayer.applyToEsriApiLayer}),layerClassHandlers.set("ArcGISImageServiceVectorLayer",{createFunction:ImageServiceLayer.toEsriApiLayer,applyFunction:ImageServiceLayer.applyToEsriApiLayer}),layerClassHandlers.set("ArcGISMapServiceLayer",{createFunction:MapServiceLayer.toEsriApiLayer,applyFunction:MapServiceLayer.applyToEsriApiLayer}),layerClassHandlers.set("ArcGISStreamLayer",{createFunction:StreamLayer.toEsriApiLayer,applyFunction:StreamLayer.applyToEsriApiLayer}),layerClassHandlers.set("ArcGISTiledElevationServiceLayer",{createFunction:ElevationLayer.toEsriApiLayer,applyFunction:ElevationLayer.applyToEsriApiLayer}),layerClassHandlers.set("ArcGISTiledImageServiceLayer",{createFunction:TiledImageServiceLayer.toEsriApiLayer,applyFunction:TiledImageServiceLayer.applyToEsriApiLayer}),layerClassHandlers.set("ArcGISTiledMapServiceLayer",{createFunction:TiledMapServiceLayer.toEsriApiLayer,applyFunction:TiledMapServiceLayer.applyToEsriApiLayer}),layerClassHandlers.set("OpenStreetMap",{createFunction:OpenStreetMapLayer.toEsriApiLayer,applyFunction:OpenStreetMapLayer.applyToEsriApiLayer}),layerClassHandlers.set("VectorTileLayer",{createFunction:VectorTileLayer.toEsriApiLayer,applyFunction:VectorTileLayer.applyToEsriApiLayer}),layerClassHandlers.set("CSV",{createFunction:CSVLayer.toEsriApiLayer,applyFunction:CSVLayer.applyToEsriApiLayer}),layerClassHandlers.set("GeoRSS",{createFunction:GeoRSSLayer.toEsriApiLayer,applyFunction:GeoRSSLayer.applyToEsriApiLayer}),layerClassHandlers.set("WMS",{createFunction:WMSLayer.toEsriApiLayer,applyFunction:WMSLayer.applyToEsriApiLayer}),layerClassHandlers.set("KML",{createFunction:KMLLayer.toEsriApiKMLLayer,applyFunction:KMLLayer.applyToEsriApiKMLLayer}),layerClassHandlers.set("WebTiledLayer",{createFunction:WebTileLayer.toEsriApiLayer,applyFunction:WebTileLayer.applyToEsriApiLayer}),layerClassHandlers.set("IntegratedMeshLayer",{createFunction:IntegratedMeshLayer.toEsriApiLayer,applyFunction:IntegratedMeshLayer.applyToEsriApiLayer}),layerClassHandlers.set("GroupLayer",{createFunction:GroupLayer.toEsriApiLayer,applyFunction:GroupLayer.applyToEsriApiLayer}),layerClassHandlers.set("ArcGISSceneServiceLayer",{createFunction:SceneLayer.toEsriApiLayer,applyFunction:SceneLayer.applyToEsriApiLayer}),layerClassHandlers.set("PointCloudLayer",{createFunction:PointCloudLayer.toEsriApiLayer,applyFunction:PointCloudLayer.applyToEsriApiLayer}),layerClassHandlers.set("BuildingSceneLayer",{createFunction:BuildingSceneLayer.toEsriApiLayer,applyFunction:BuildingSceneLayer.applyToEsriApiLayer})},LayerBase.registerLayerClassHandler=(e,r,a)=>{layerClassHandlers.set(e,{createFunction:r,applyFunction:a})},LayerBase.registerDefaultClassHandlers();
@@ -1 +1 @@
1
- import EsriExtent from"@arcgis/core/geometry/Extent";import{DataLayerSource,MapLayerSource}from"../support/_esriInternal.js";import{isBuildingSceneLayer,isCSVLayer,isFeatureLayer,isFeatureLayerBase,isMapImageSublayer as isEsriSublayer,isSceneLayer,isStreamLayer}from"../utilities/_layers.js";import{checkArg}from"../utilities/checkArg.js";import{isEmpty}from"../utilities/object.js";import{DrawingInfo}from"./DrawingInfo.js";import{ElevationInfo}from"./ElevationInfo.js";import{FeatureReduction}from"./FeatureReduction.js";import{Field as PortalField}from"./Field.js";import{GeometryType}from"./Geometry.js";import{SpatialReference}from"./SpatialReference.js";import{Template}from"./Template.js";export var LayerDefinition;!function(e){e.applyToEsriApiLayer=async function(e,i){var t,r;checkArg("json",e).isNotMissing(),checkArg("layer",i).isNotMissing();const a=i,s=i;if(isFeatureLayerBase(a)&&(e.hasOwnProperty("objectIdField")&&(isStreamLayer(a)?a.objectIdField="__esri_stream_id__":a.objectIdField=e.objectIdField),e.hasOwnProperty("geometryType")&&(a.geometryType=GeometryType.toEsriApiGeometryType(e.geometryType)),e.hasOwnProperty("hasAttachments")&&s._set("capabilities.data.supportsAttachment",e.hasAttachments),e.hasOwnProperty("maxRecordCount")&&(s.maxRecordCount=e.maxRecordCount),e.hasOwnProperty("hasM")&&s._set("hasM",e.hasM),e.hasOwnProperty("hasZ")&&s._set("hasZ",e.hasZ),e.hasOwnProperty("templates")&&(a.templates=e.templates.map((e=>Template.toEsriApiFeatureTemplate(e))))),e.hasOwnProperty("orderBy")&&(isFeatureLayer(a)||isCSVLayer(a))&&(e.orderBy?a.orderBy=e.orderBy.map((e=>({field:e.field,order:"desc"===e.order?"descending":"ascending"}))):a.orderBy=void 0),e.hasOwnProperty("source")&&isEsriSublayer(i)&&!(null===(t=i.layer)||void 0===t?void 0:t.loaded)){const{type:i,...t}=e.source;"dataLayer"===i?s._set("source",new DataLayerSource(t)):"mapLayer"===i&&s._set("source",new MapLayerSource(t))}if(e.hasOwnProperty("copyrightText")&&(i.copyright=e.copyrightText),e.hasOwnProperty("defaultVisibility")&&(i.visible=e.defaultVisibility),e.hasOwnProperty("definitionExpression")&&(i.definitionExpression=e.definitionExpression),e.hasOwnProperty("elevationInfo")&&e.elevationInfo&&(i.elevationInfo=ElevationInfo.toEsriApiElevationInfo(e.elevationInfo)),e.hasOwnProperty("extent")&&(i.fullExtent=e.extent?EsriExtent.fromJSON(e.extent):void 0),e.hasOwnProperty("fields")){const i=[];e.fields.forEach((e=>{i.push(PortalField.toEsriApiField(e))})),s._set("fields",i)}e.hasOwnProperty("maxScale")&&(i.maxScale=e.maxScale),e.hasOwnProperty("minScale")&&(i.minScale=e.minScale),e.hasOwnProperty("name")&&!i.title&&(i.title=e.name);try{e.hasOwnProperty("spatialReference")?i.spatialReference=SpatialReference.toEsriApiSpatialReference(e.spatialReference):(null===(r=i.fullExtent)||void 0===r?void 0:r.spatialReference)&&i.spatialReference&&(i.spatialReference=i.fullExtent.spatialReference.clone())}catch{}e.hasOwnProperty("featureReduction")&&e.featureReduction&&await FeatureReduction.applyToEsriApiLayer(e.featureReduction,i),e.hasOwnProperty("drawingInfo")&&await DrawingInfo.applyToEsriApiLayer(e.drawingInfo,i)},e.fromEsriApiLayer=function(e,i={}){checkArg("layer",e).isNotMissing();const t={},r=e,a=e;if(isFeatureLayerBase(r)){const s=e;r.objectIdField&&(t.objectIdField=r.objectIdField),s.geometryType&&(t.geometryType=GeometryType.fromEsriApiGeometryType(s.geometryType)),r.capabilities&&r.capabilities.data.supportsAttachment!==i.hasAttachments&&(t.hasAttachments=r.capabilities.data.supportsAttachment),isNaN(a.maxRecordCount)||null==a.maxRecordCount||(t.maxRecordCount=a.maxRecordCount),r.capabilities&&(t.capabilities=LayerDefinitionCapabilities.fromEsriApiFeatureLayerCapabilities(r.capabilities),r.capabilities.query&&(t.supportsAdvancedQueries=r.capabilities.query.supportsOrderBy||r.capabilities.query.supportsDistinct,t.supportsStatistics=r.capabilities.query.supportsStatistics)),r.hasM!==i.hasM&&(t.hasM=r.hasM),r.hasZ!==i.hasZ&&(t.hasZ=r.hasZ),r.templates&&r.templates.length>0&&(t.templates=r.templates.map((e=>Template.fromEsriApiFeatureTemplate(e))))}if(e.featureReduction&&(t.featureReduction=FeatureReduction.fromEsriApiLayer(e)),isEsriSublayer(e)&&e.source&&("data-layer"===e.source.type||"map-layer"===e.source.type)&&(t.source=e.source.toJSON()),e.copyright&&(t.copyrightText=e.copyright),e.visible===i.visible||isEsriSublayer(e)||(t.defaultVisibility=e.visible),e.definitionExpression&&(t.definitionExpression=e.definitionExpression),t.drawingInfo=DrawingInfo.fromEsriApiLayer(e),isEmpty(t.drawingInfo)&&delete t.drawingInfo,e.elevationInfo&&(t.elevationInfo=ElevationInfo.fromEsriApiElevationInfo(e.elevationInfo)),e.fullExtent&&!e.fullExtent.equals(i.fullExtent)&&(t.extent=e.fullExtent.toJSON()),e.fields&&e.fields.length>0){const i=[];e.fields.forEach((e=>{i.push(PortalField.fromEsriApiField(e))})),t.fields=i}if((isFeatureLayer(r)||isCSVLayer(r))&&r.orderBy&&(t.orderBy=r.orderBy.map((e=>({field:e.field,order:"descending"===e.order?"desc":"asc"})))),isFeatureLayer(r)||isCSVLayer(r)||isStreamLayer(r)||isSceneLayer(r)||isBuildingSceneLayer(r)){const{maxScale:e}=r,{minScale:a}=r;isNaN(e)||null===e||e===i.maxScale&&e===a||(t.maxScale=e),isNaN(a)||null===a||a===i.minScale&&a===e||(t.minScale=a)}return t.name=e.title,e.spatialReference&&e.spatialReference.wkid!==i.wkid&&(t.spatialReference=SpatialReference.fromEsriApiSpatialReference(e.spatialReference)),t}}(LayerDefinition||(LayerDefinition={}));export var LayerDefinitionCapabilities;!function(e){e.ADD="Add",e.DELETE="Delete",e.EDITING="Editing",e.QUERY="Query",e.UPDATE="Update",e.fromEsriApiFeatureLayerCapabilities=function(i){checkArg("capabilities",i).isNotMissing();const t=[];return i.operations.supportsAdd&&t.push(e.ADD),i.operations.supportsDelete&&t.push(e.DELETE),i.operations.supportsEditing&&t.push(e.EDITING),i.operations.supportsQuery&&t.push(e.QUERY),i.operations.supportsUpdate&&t.push(e.UPDATE),t.join(",")}}(LayerDefinitionCapabilities||(LayerDefinitionCapabilities={}));
1
+ import EsriExtent from"@arcgis/core/geometry/Extent";import{DataLayerSource,MapLayerSource}from"../support/_esriInternal.js";import{isBuildingSceneLayer,isCSVLayer,isFeatureLayer,isFeatureLayerBase,isMapImageSublayer as isEsriSublayer,isSceneLayer,isStreamLayer}from"../utilities/_layers.js";import{checkArg}from"../utilities/checkArg.js";import{isEmpty}from"../utilities/object.js";import{DrawingInfo}from"./DrawingInfo.js";import{ElevationInfo}from"./ElevationInfo.js";import{FeatureReduction}from"./FeatureReduction.js";import{Field as PortalField}from"./Field.js";import{GeometryType}from"./Geometry.js";import{SpatialReference}from"./SpatialReference.js";import{Template}from"./Template.js";export var LayerDefinition;!function(e){e.applyToEsriApiLayer=async function(e,i){var t,r;checkArg("json",e).isNotMissing(),checkArg("layer",i).isNotMissing();const a=i,s=i;if(isFeatureLayerBase(a)&&(e.hasOwnProperty("objectIdField")&&(isStreamLayer(a)?a.objectIdField="__esri_stream_id__":a.objectIdField=e.objectIdField),e.hasOwnProperty("geometryType")&&(a.geometryType=GeometryType.toEsriApiGeometryType(e.geometryType)),e.hasOwnProperty("hasAttachments")&&s._set("capabilities.data.supportsAttachment",e.hasAttachments),e.hasOwnProperty("maxRecordCount")&&(s.maxRecordCount=e.maxRecordCount),e.hasOwnProperty("hasM")&&s._set("hasM",e.hasM),e.hasOwnProperty("hasZ")&&s._set("hasZ",e.hasZ),e.hasOwnProperty("templates")&&(a.templates=e.templates.map((e=>Template.toEsriApiFeatureTemplate(e))))),e.hasOwnProperty("orderBy")&&(isFeatureLayer(a)||isCSVLayer(a))&&(e.orderBy?a.orderBy=e.orderBy.map((e=>({field:e.field,order:"desc"===e.order?"descending":"ascending"}))):a.orderBy=void 0),e.hasOwnProperty("source")&&isEsriSublayer(i)&&!(null===(t=i.layer)||void 0===t?void 0:t.loaded)){const{type:i,...t}=e.source;"dataLayer"===i?s._set("source",new DataLayerSource(t)):"mapLayer"===i&&s._set("source",new MapLayerSource(t))}if(e.hasOwnProperty("copyrightText")&&(i.copyright=e.copyrightText),e.hasOwnProperty("defaultVisibility")&&(i.visible=e.defaultVisibility),e.hasOwnProperty("definitionExpression")&&(i.definitionExpression=e.definitionExpression),e.hasOwnProperty("elevationInfo")&&e.elevationInfo&&(i.elevationInfo=ElevationInfo.toEsriApiElevationInfo(e.elevationInfo)),e.hasOwnProperty("extent")&&(i.fullExtent=e.extent?EsriExtent.fromJSON(e.extent):void 0),e.hasOwnProperty("fields")){const i=[];e.fields.forEach((e=>{i.push(PortalField.toEsriApiField(e))})),s._set("fields",i)}e.hasOwnProperty("maxScale")&&(i.maxScale=e.maxScale),e.hasOwnProperty("minScale")&&(i.minScale=e.minScale),e.hasOwnProperty("name")&&!i.title&&(i.title=e.name);try{e.hasOwnProperty("spatialReference")?i.spatialReference=SpatialReference.toEsriApiSpatialReference(e.spatialReference):(null===(r=i.fullExtent)||void 0===r?void 0:r.spatialReference)&&i.spatialReference&&(i.spatialReference=i.fullExtent.spatialReference.clone())}catch{}e.hasOwnProperty("featureReduction")&&e.featureReduction&&await FeatureReduction.applyToEsriApiLayer(e.featureReduction,i),e.hasOwnProperty("drawingInfo")&&await DrawingInfo.applyToEsriApiLayer(e.drawingInfo,i)},e.fromEsriApiLayer=function(e,i={}){checkArg("layer",e).isNotMissing();const t={},r=e,a=e;if(isFeatureLayerBase(r)){const s=e;r.objectIdField&&(t.objectIdField=r.objectIdField),s.geometryType&&(t.geometryType=GeometryType.fromEsriApiGeometryType(s.geometryType)),r.capabilities&&r.capabilities.data.supportsAttachment!==i.hasAttachments&&(t.hasAttachments=r.capabilities.data.supportsAttachment),isNaN(a.maxRecordCount)||null==a.maxRecordCount||(t.maxRecordCount=a.maxRecordCount),r.capabilities&&(t.capabilities=LayerDefinitionCapabilities.fromEsriApiFeatureLayerCapabilities(r.capabilities),r.capabilities.query&&(t.supportsAdvancedQueries=r.capabilities.query.supportsOrderBy||r.capabilities.query.supportsDistinct,t.supportsStatistics=r.capabilities.query.supportsStatistics)),r.hasM!==i.hasM&&(t.hasM=r.hasM),r.hasZ!==i.hasZ&&(t.hasZ=r.hasZ),r.templates&&r.templates.length>0&&(t.templates=r.templates.map((e=>Template.fromEsriApiFeatureTemplate(e))))}if(e.featureReduction&&(t.featureReduction=FeatureReduction.fromEsriApiLayer(e)),isEsriSublayer(e)&&e.source&&("data-layer"===e.source.type||"map-layer"===e.source.type)&&(t.source=e.source.toJSON()),e.copyright&&(t.copyrightText=e.copyright),e.visible===i.visible||isEsriSublayer(e)||(t.defaultVisibility=e.visible),e.definitionExpression&&(t.definitionExpression=e.definitionExpression),t.drawingInfo=DrawingInfo.fromEsriApiLayer(e),isEmpty(t.drawingInfo)&&delete t.drawingInfo,e.elevationInfo&&(t.elevationInfo=ElevationInfo.fromEsriApiElevationInfo(e.elevationInfo)),!isEsriSublayer(e)&&(!isFeatureLayer(e)||e.source)&&(e.fullExtent&&!e.fullExtent.equals(i.fullExtent)&&(t.extent=e.fullExtent.toJSON()),e.fields&&e.fields.length>0)){const i=[];e.fields.forEach((e=>{i.push(PortalField.fromEsriApiField(e))})),t.fields=i}if((isFeatureLayer(r)||isCSVLayer(r))&&r.orderBy&&(t.orderBy=r.orderBy.map((e=>({field:e.field,order:"descending"===e.order?"desc":"asc"})))),isFeatureLayer(r)||isCSVLayer(r)||isStreamLayer(r)||isSceneLayer(r)||isBuildingSceneLayer(r)){const{maxScale:e}=r,{minScale:a}=r;isNaN(e)||null===e||e===i.maxScale&&e===a||(t.maxScale=e),isNaN(a)||null===a||a===i.minScale&&a===e||(t.minScale=a)}return t.name=e.title,e.spatialReference&&e.spatialReference.wkid!==i.wkid&&(t.spatialReference=SpatialReference.fromEsriApiSpatialReference(e.spatialReference)),t}}(LayerDefinition||(LayerDefinition={}));export var LayerDefinitionCapabilities;!function(e){e.ADD="Add",e.DELETE="Delete",e.EDITING="Editing",e.QUERY="Query",e.UPDATE="Update",e.fromEsriApiFeatureLayerCapabilities=function(i){checkArg("capabilities",i).isNotMissing();const t=[];return i.operations.supportsAdd&&t.push(e.ADD),i.operations.supportsDelete&&t.push(e.DELETE),i.operations.supportsEditing&&t.push(e.EDITING),i.operations.supportsQuery&&t.push(e.QUERY),i.operations.supportsUpdate&&t.push(e.UPDATE),t.join(",")}}(LayerDefinitionCapabilities||(LayerDefinitionCapabilities={}));
package/support/_query.js CHANGED
@@ -1 +1 @@
1
- import{toFeature}from"../data/Feature.js";import{checkArg}from"../utilities/checkArg.js";import{cancelifyWithAbortSignal}from"./Cancellable.js";export function escape(e){return e.replace(/([%'])/g,"$1$1")}export function concatenateWhereClauses(e,n){return(null==e?void 0:e.length)>0&&(null==n?void 0:n.length)>0?`(${e}) and (${n})`:null!=e?e:n}export function executeQuery(e,n,t,r){return checkArg("query",e).isNotMissing(),checkArg("source",n).isNotMissing(),checkArg("queryable",t).isNotMissing(),e.where=concatenateWhereClauses(t.definitionExpression,e.where),async function*(){const i=e.num;let s=(await cancelifyWithAbortSignal((async n=>t.queryFeatures(e,{signal:n})),r)).features;i>0&&s.length>i&&(s=s.slice(0,i)),yield*s.map((e=>toFeature(e,{source:n})))}()}export async function executeCount(e,n,t,r){checkArg("query",e).isNotMissing(),checkArg("source",n).isNotMissing(),checkArg("queryable",t).isNotMissing(),e.where=concatenateWhereClauses(t.definitionExpression,e.where);const i=e.num;e.num=void 0;let s=await cancelifyWithAbortSignal((async n=>t.queryFeatureCount(e,{signal:n})),r);return i>0&&s>i&&(s=i),{source:n,count:s}}export async function executeCountByQuery(e,n,t,r){checkArg("query",e).isNotMissing(),checkArg("source",n).isNotMissing(),checkArg("queryable",t).isNotMissing(),e.where=concatenateWhereClauses(t.definitionExpression,e.where);const i=e.num;let s=(await cancelifyWithAbortSignal((async n=>t.queryFeatures(e,{signal:n})),r)).features.length;return i>0&&s>i&&(s=i),{source:n,count:s}}
1
+ import{toFeature}from"../data/Feature.js";import{checkArg}from"../utilities/checkArg.js";import{cancelifyWithAbortSignal}from"./Cancellable.js";export function escape(e){return e.replace(/([%'])/g,"$1$1")}export function concatenateWhereClauses(e,t){return(null==e?void 0:e.length)>0&&(null==t?void 0:t.length)>0?`(${e}) and (${t})`:e||t}export function executeQuery(e,t,n,r){return checkArg("query",e).isNotMissing(),checkArg("source",t).isNotMissing(),checkArg("queryable",n).isNotMissing(),e.where=concatenateWhereClauses(n.definitionExpression,e.where),async function*(){const i=e.num;let s=(await cancelifyWithAbortSignal((async t=>n.queryFeatures(e,{signal:t})),r)).features;i>0&&s.length>i&&(s=s.slice(0,i)),yield*s.map((e=>toFeature(e,{source:t})))}()}export async function executeCount(e,t,n,r){checkArg("query",e).isNotMissing(),checkArg("source",t).isNotMissing(),checkArg("queryable",n).isNotMissing(),e.where=concatenateWhereClauses(n.definitionExpression,e.where);const i=e.num;e.num=void 0;let s=await cancelifyWithAbortSignal((async t=>n.queryFeatureCount(e,{signal:t})),r);return i>0&&s>i&&(s=i),{source:t,count:s}}export async function executeCountByQuery(e,t,n,r){checkArg("query",e).isNotMissing(),checkArg("source",t).isNotMissing(),checkArg("queryable",n).isNotMissing(),e.where=concatenateWhereClauses(n.definitionExpression,e.where);const i=e.num;let s=(await cancelifyWithAbortSignal((async t=>n.queryFeatures(e,{signal:t})),r)).features.length;return i>0&&s>i&&(s=i),{source:t,count:s}}
@@ -1 +1 @@
1
- import{isFeatureLayerExtension}from"../../utilities/extensions.js";import{isPoint}from"../../utilities/geometry.js";import{isVolumetric}from"../../utilities/symbol.js";import{FeatureLayerQueryProvider}from"../query/FeatureLayerQueryProvider.js";import{HitTestIdentifyProvider}from"./HitTestIdentifyProvider.js";export class FeatureLayer3DHitTestIdentifyProvider extends HitTestIdentifyProvider{constructor(){super(...arguments),this.queryProvider=new FeatureLayerQueryProvider}isSupported(e,r,i){var s,t,o;return super.isSupported(e,r,i)&&isFeatureLayerExtension(e)&&"scene"===e.mapExtension.viewMode&&(e.layer.hasZ||isSimpleRenderer3D(e.layer.renderer)||isClassBreaksRenderer3D(e.renderer)||isUniqueValueRenderer3D(e.layer.renderer))&&r&&!!(null===(o=null===(t=null===(s=e._layerView)||void 0===s?void 0:s.view)||void 0===t?void 0:t.extent)||void 0===o?void 0:o.intersects(isPoint(r)?r:r.extent))}}function isSimpleRenderer3D(e){return"simple"===e.type&&isVolumetric(e.symbol)}function isClassBreaksRenderer3D(e){return"class-breaks"===e.type&&e.classBreakInfos.map((e=>e.symbol)).some(isVolumetric)}function isUniqueValueRenderer3D(e){return"unique-value"===e.type&&e.uniqueValueInfos.map((e=>e.symbol)).some(isVolumetric)}
1
+ import{isFeatureLayerExtension}from"../../utilities/extensions.js";import{isPoint}from"../../utilities/geometry.js";import{isVolumetric}from"../../utilities/symbol.js";import{FeatureLayerQueryProvider}from"../query/FeatureLayerQueryProvider.js";import{HitTestIdentifyProvider}from"./HitTestIdentifyProvider.js";export class FeatureLayer3DHitTestIdentifyProvider extends HitTestIdentifyProvider{constructor(){super(...arguments),this.queryProvider=new FeatureLayerQueryProvider}isSupported(e,r,i){var s,t,o;return super.isSupported(e,r,i)&&isFeatureLayerExtension(e)&&"scene"===e.mapExtension.viewMode&&(e.layer.hasZ||isSimpleRenderer3D(e.layer.renderer)||isClassBreaksRenderer3D(e.renderer)||isUniqueValueRenderer3D(e.layer.renderer))&&r&&!!(null===(o=null===(t=null===(s=e._layerView)||void 0===s?void 0:s.view)||void 0===t?void 0:t.extent)||void 0===o?void 0:o.intersects(isPoint(r)?r:r.extent))}}function isSimpleRenderer3D(e){return"simple"===(null==e?void 0:e.type)&&isVolumetric(e.symbol)}function isClassBreaksRenderer3D(e){return"class-breaks"===(null==e?void 0:e.type)&&e.classBreakInfos.map((e=>e.symbol)).some(isVolumetric)}function isUniqueValueRenderer3D(e){return"unique-value"===(null==e?void 0:e.type)&&e.uniqueValueInfos.map((e=>e.symbol)).some(isVolumetric)}
@@ -32,7 +32,6 @@ import type { LayerExtension } from "../mapping/_LayerExtension.js";
32
32
  import type { BaseMap as BasemapJson } from "../portal/BaseMap.js";
33
33
  import { LayerBase as LayerJson } from "../portal/_LayerBase.js";
34
34
  import type { LayerWithLegendEnabledProperty } from "../portal/_layerHelper.js";
35
- import { SublayerLike } from "../support/esri.js";
36
35
  /**
37
36
  * Determines whether two layer objects represent the equivalent layer. Two
38
37
  * layers are considered equivalent if they have the same URL.
@@ -192,7 +191,7 @@ export declare function isImageryTileLayer(layer: unknown): layer is ImageryTile
192
191
  *
193
192
  * @param layer The layer to check.
194
193
  */
195
- export declare function isTiledImageServiceLayer(layer: unknown): boolean;
194
+ export declare function isTiledImageServiceLayer(layer: unknown): layer is TileLayer;
196
195
  /**
197
196
  * Returns true if layer is a TiledMapServiceLayer.
198
197
  *
@@ -204,44 +203,44 @@ export declare function isTiledMapServiceLayer(layer: unknown): boolean;
204
203
  *
205
204
  * @param sublayer The sublayer to check.
206
205
  */
207
- export declare function isMapImageSublayer(sublayer: SublayerLike): sublayer is MapImageSublayer;
206
+ export declare function isMapImageSublayer(sublayer: unknown): sublayer is MapImageSublayer;
208
207
  /**
209
208
  * Returns true if sublayer is a KMLSublayer.
210
209
  *
211
210
  * @param sublayer The sublayer to check.
212
211
  */
213
- export declare function isKMLSublayer(sublayer: SublayerLike): sublayer is KMLSublayer;
212
+ export declare function isKMLSublayer(sublayer: unknown): sublayer is KMLSublayer;
214
213
  /**
215
214
  * Returns true if sublayer is a WMTSSublayer.
216
215
  *
217
216
  * @param sublayer The sublayer to check.
218
217
  */
219
- export declare function isWMTSSublayer(sublayer: SublayerLike): sublayer is WMTSSublayer;
218
+ export declare function isWMTSSublayer(sublayer: unknown): sublayer is WMTSSublayer;
220
219
  /**
221
220
  * Returns true if sublayer is a WMSSublayer.
222
221
  *
223
222
  * @param sublayer The sublayer to check.
224
223
  */
225
- export declare function isWMSSublayer(sublayer: SublayerLike): sublayer is WMSSublayer;
224
+ export declare function isWMSSublayer(sublayer: unknown): sublayer is WMSSublayer;
226
225
  /**
227
226
  * Returns true if sublayer is a BuildingComponentSublayer.
228
227
  *
229
228
  * @param sublayer The sublayer to check.
230
229
  */
231
- export declare function isBuildingComponentSublayer(sublayer: SublayerLike): sublayer is BuildingComponentSublayer;
230
+ export declare function isBuildingComponentSublayer(sublayer: unknown): sublayer is BuildingComponentSublayer;
232
231
  /**
233
232
  * Returns true if sublayer is a BuildingGroupSublayer.
234
233
  *
235
234
  * @param sublayer The sublayer to check.
236
235
  */
237
- export declare function isBuildingGroupSublayer(sublayer: SublayerLike): sublayer is BuildingGroupSublayer;
236
+ export declare function isBuildingGroupSublayer(sublayer: unknown): sublayer is BuildingGroupSublayer;
238
237
  /**
239
238
  * This list should contains all the layers which do not have the legendEnable property.
240
239
  * The data source can be found on the API reference / documentation.
241
240
  *
242
241
  * @param layer The layer to interrogate.
243
242
  */
244
- export declare function isLayerWithLegendEnabledProperty(layer: Layer): layer is LayerWithLegendEnabledProperty;
243
+ export declare function isLayerWithLegendEnabledProperty(layer: unknown): layer is LayerWithLegendEnabledProperty;
245
244
  /**
246
245
  * Whether the layer extensions contain an mmap layer. The layer may be nested
247
246
  * within a group layer.
@@ -1 +1 @@
1
- import{LayerBase as LayerJson}from"../portal/_LayerBase.js";import{WellKnownBasemap}from"../support/esri.js";import{isGroupLayerExtension}from"./extensions.js";import{isBasemap}from"./mapping.js";export function layersAreEquivalent(e,r){if(e===r)return!0;const a=isLayer(e)?LayerJson.getLayerType(e):e.layerType;if(a!==(isLayer(r)?LayerJson.getLayerType(r):r.layerType))return!1;if("OpenStreetMap"===a)return!0;if("ArcGISFeatureLayer"===a){const a=isFeatureLayer(e)?`${e.url}/${e.layerId}`:e.url,s=isFeatureLayer(r)?`${r.url}/${r.layerId}`:r.url;return e.id===r.id||e.url&&urlsAreEquivalent(a,s)}return e.id===r.id||e.url&&urlsAreEquivalent(e.url,r.url)||(e.styleUrl||r.styleUrl)&&urlsAreEquivalent(e.url||e.styleUrl,r.url||r.styleUrl)||e.key&&e.key===r.key||e.urlTemplate&&urlsAreEquivalent(e.urlTemplate,r.urlTemplate)}export function basemapsAreEquivalent(e,r){var a,s,t,i,l,n,o,c;if(e===r)return!0;if(!e||!r)return!1;let y,p,d,u;return isBasemap(e)?(y=e.baseLayers.toArray(),d=e.referenceLayers.toArray()):(y=null!==(s=null===(a=e.baseMapLayers)||void 0===a?void 0:a.filter((e=>!e.isReference)))&&void 0!==s?s:[],d=null!==(i=null===(t=e.baseMapLayers)||void 0===t?void 0:t.filter((e=>e.isReference)))&&void 0!==i?i:[]),isBasemap(r)?(p=r.baseLayers.toArray(),u=r.referenceLayers.toArray()):(p=null!==(n=null===(l=r.baseMapLayers)||void 0===l?void 0:l.filter((e=>!e.isReference)))&&void 0!==n?n:[],u=null!==(c=null===(o=r.baseMapLayers)||void 0===o?void 0:o.filter((e=>e.isReference)))&&void 0!==c?c:[]),y.length===p.length&&y.every(((e,r)=>layersAreEquivalent(e,p[r])))&&d.length===u.length&&d.every(((e,r)=>layersAreEquivalent(e,u[r])))}export const standardBasemaps={[WellKnownBasemap.DARK_GRAY]:{baseMapLayers:[{id:"dark-gray-base-layer",title:"World Dark Gray Base",url:"https://services.arcgisonline.com/ArcGIS/rest/services/Canvas/World_Dark_Gray_Base/MapServer",layerType:"ArcGISTiledMapServiceLayer",showLegend:!1},{isReference:!0,id:"dark-gray-reference-layer",title:"World Dark Gray Reference",url:"https://services.arcgisonline.com/ArcGIS/rest/services/Canvas/World_Dark_Gray_Reference/MapServer",layerType:"ArcGISTiledMapServiceLayer",showLegend:!1}]},[WellKnownBasemap.DARK_GRAY_VECTOR]:{baseMapLayers:[{id:"dark-gray-base-layer",layerType:"VectorTileLayer",showLegend:!1,title:"Dark Gray Base",styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/5e9b3685f4c24d8781073dd928ebda50/resources/styles/root.json"},{id:"dark-gray-reference-layer",layerType:"VectorTileLayer",showLegend:!1,title:"Dark Gray Reference",styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/747cb7a5329c478cbe6981076cc879c5/resources/styles/root.json",isReference:!0}]},[WellKnownBasemap.GRAY]:{baseMapLayers:[{id:"gray-base-layer",title:"World Light Gray Base",url:"https://services.arcgisonline.com/ArcGIS/rest/services/Canvas/World_Light_Gray_Base/MapServer",layerType:"ArcGISTiledMapServiceLayer",showLegend:!1},{isReference:!0,id:"gray-reference-layer",title:"World Light Gray Reference",url:"https://services.arcgisonline.com/ArcGIS/rest/services/Canvas/World_Light_Gray_Reference/MapServer",layerType:"ArcGISTiledMapServiceLayer",showLegend:!1}]},[WellKnownBasemap.GRAY_VECTOR]:{baseMapLayers:[{id:"gray-base-layer",layerType:"VectorTileLayer",showLegend:!1,title:"Light Gray Base",styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/291da5eab3a0412593b66d384379f89f/resources/styles/root.json"},{id:"gray-reference-layer",layerType:"VectorTileLayer",showLegend:!1,title:"Light Gray Reference",styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/1768e8369a214dfab4e2167d5c5f2454/resources/styles/root.json",isReference:!0}]},[WellKnownBasemap.HYBRID]:{baseMapLayers:[{id:"hybrid-base-layer",layerType:"ArcGISTiledMapServiceLayer",showLegend:!1,url:"https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer",title:"World Imagery"},{id:"hybrid-reference-layer",layerType:"ArcGISTiledMapServiceLayer",showLegend:!1,url:"https://services.arcgisonline.com/ArcGIS/rest/services/Reference/World_Boundaries_and_Places/MapServer",title:"World Boundaries and Places",isReference:!0}]},[WellKnownBasemap.HYBRID_VECTOR]:{baseMapLayers:[{id:"hybrid-base-layer",layerType:"ArcGISTiledMapServiceLayer",showLegend:!1,url:"https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer",title:"World Imagery"},{id:"hybrid-reference-layer",layerType:"VectorTileLayer",showLegend:!1,title:"Hybrid Reference Layer",styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/30d6b8271e1849cd9c3042060001f425/resources/styles/root.json",isReference:!0}]},[WellKnownBasemap.NATIONAL_GEOGRAPHIC]:{baseMapLayers:[{id:"national-geographic-base-layer",title:"NatGeo World Map",url:"https://services.arcgisonline.com/ArcGIS/rest/services/NatGeo_World_Map/MapServer",layerType:"ArcGISTiledMapServiceLayer",showLegend:!1}]},[WellKnownBasemap.OCEANS]:{baseMapLayers:[{id:"oceans-base-layer",layerType:"ArcGISTiledMapServiceLayer",showLegend:!1,url:"https://services.arcgisonline.com/arcgis/rest/services/Ocean/World_Ocean_Base/MapServer",title:"World Ocean Base"},{id:"oceans-reference-layer",layerType:"ArcGISTiledMapServiceLayer",showLegend:!1,title:"World Ocean Reference",url:"https://services.arcgisonline.com/arcgis/rest/services/Ocean/World_Ocean_Reference/MapServer",isReference:!0}]},[WellKnownBasemap.OCEANS_VECTOR]:{baseMapLayers:[{id:"oceans-base-layer",layerType:"ArcGISTiledMapServiceLayer",showLegend:!1,url:"https://services.arcgisonline.com/arcgis/rest/services/Ocean/World_Ocean_Base/MapServer",title:"World Ocean Base"},{id:"oceans-reference-layer",layerType:"VectorTileLayer",showLegend:!1,title:"World Ocean Reference",styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/89860a5baf424f3ea0c655115faababe/resources/styles/root.json",isReference:!0}]},[WellKnownBasemap.OPEN_STREET_MAP]:{baseMapLayers:[{id:"osm-base-layer",layerType:"OpenStreetMap",showLegend:!1,title:"OpenStreetMap"}]},[WellKnownBasemap.OPEN_STREET_MAP_VECTOR]:{baseMapLayers:[{id:"osm-base-layer",layerType:"VectorTileLayer",showLegend:!1,title:"OpenStreetMap",styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/3e1a00aeae81496587988075fe529f71/resources/styles/root.json"}]},[WellKnownBasemap.SATELLITE]:{baseMapLayers:[{id:"satellite-base-layer",title:"World Imagery",url:"https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer",layerType:"ArcGISTiledMapServiceLayer",showLegend:!1}]},[WellKnownBasemap.STREETS]:{baseMapLayers:[{id:"streets-base-layer",title:"World Street Map",url:"https://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer",layerType:"ArcGISTiledMapServiceLayer",showLegend:!1}]},[WellKnownBasemap.STREETS_NAVIGATION_VECTOR]:{baseMapLayers:[{id:"streets-navigation-vector-base-layer",title:"World Navigation Map",layerType:"VectorTileLayer",showLegend:!1,styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/63c47b7177f946b49902c24129b87252/resources/styles/root.json"}]},[WellKnownBasemap.STREETS_NIGHT_VECTOR]:{baseMapLayers:[{id:"streets-night-vector-base-layer",title:"World Street Map (Night)",layerType:"VectorTileLayer",showLegend:!1,styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/86f556a2d1fd468181855a35e344567f/resources/styles/root.json"}]},[WellKnownBasemap.STREETS_RELIEF_VECTOR]:{baseMapLayers:[{id:"world-hillshade-layer",title:"World Hillshade",url:"https://services.arcgisonline.com/arcgis/rest/services/Elevation/World_Hillshade/MapServer",layerType:"ArcGISTiledMapServiceLayer",showLegend:!1},{id:"streets-relief-vector-base-layer",title:"World Streets Relief",layerType:"VectorTileLayer",showLegend:!1,styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/b266e6d17fc345b498345613930fbd76/resources/styles/root.json"}]},[WellKnownBasemap.STREETS_VECTOR]:{baseMapLayers:[{id:"streets-vector-base-layer",title:"World Street Map",layerType:"VectorTileLayer",showLegend:!1,styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/de26a3cf4cc9451298ea173c4b324736/resources/styles/root.json"}]},[WellKnownBasemap.TERRAIN]:{baseMapLayers:[{id:"terrain-base-layer",layerType:"ArcGISTiledMapServiceLayer",showLegend:!1,url:"https://services.arcgisonline.com/ArcGIS/rest/services/World_Terrain_Base/MapServer",title:"World Terrain Base"},{id:"terrain-reference-layer",layerType:"ArcGISTiledMapServiceLayer",showLegend:!1,url:"https://services.arcgisonline.com/ArcGIS/rest/services/Reference/World_Reference_Overlay/MapServer",title:"World Terrain Reference",isReference:!0}]},[WellKnownBasemap.TERRAIN_VECTOR]:{baseMapLayers:[{id:"world-hillshade",layerType:"ArcGISTiledMapServiceLayer",showLegend:!1,url:"https://services.arcgisonline.com/arcgis/rest/services/Elevation/World_Hillshade/MapServer",title:"World Hillshade"},{id:"terrain-base-layer",layerType:"VectorTileLayer",showLegend:!1,title:"World Terrain Base",styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/33064a20de0c48d2bb61efa8faca93a8/resources/styles/root.json"},{id:"terrain-reference-layer",layerType:"VectorTileLayer",showLegend:!1,title:"World Terrain Reference",styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/14fbc125ccc9488888b014db09f35f67/resources/styles/root.json",isReference:!0}]},[WellKnownBasemap.TOPO]:{baseMapLayers:[{id:"topo-base-layer",title:"World Topo Map",url:"https://services.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer",layerType:"ArcGISTiledMapServiceLayer",showLegend:!1}]},[WellKnownBasemap.TOPO_VECTOR]:{baseMapLayers:[{id:"world-hillshade-layer",title:"World Hillshade",url:"https://services.arcgisonline.com/arcgis/rest/services/Elevation/World_Hillshade/MapServer",layerType:"ArcGISTiledMapServiceLayer",showLegend:!1},{id:"topo-vector-base-layer",title:"World Topographic Map",layerType:"VectorTileLayer",showLegend:!1,styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/7dc6cea0b1764a1f9af2e679f642f0f5/resources/styles/root.json"}]}};function urlsAreEquivalent(e,r){return e&&r?e.toLowerCase().replace("www.arcgis.com","cdn.arcgis.com")===r.toLowerCase().replace("www.arcgis.com","cdn.arcgis.com"):e==r}const LAYER_DECLARED_CLASS_REGEX=/^esri\.layers\.\w+Layer$/;export function isLayer(e){const r=null==e?void 0:e.declaredClass;return"string"==typeof r&&LAYER_DECLARED_CLASS_REGEX.test(r)}export function isCSVLayer(e){return"csv"===(null==e?void 0:e.type)}export function isStreamLayer(e){return"stream"===(null==e?void 0:e.type)}export function isFeatureLayerBase(e){return isCSVLayer(e)||isFeatureLayer(e)||isStreamLayer(e)}export function isFeatureLayer(e){return"feature"===(null==e?void 0:e.type)}export function isGeoRssLayer(e){return"geo-rss"===(null==e?void 0:e.type)}export function isGraphicsLayer(e){return"graphics"===(null==e?void 0:e.type)}export function isImageryLayer(e){return"imagery"===(null==e?void 0:e.type)}export function isKMLLayer(e){return"kml"===(null==e?void 0:e.type)}export function isMapImageLayer(e){return"map-image"===(null==e?void 0:e.type)}export function isOpenStreetMapLayer(e){return"open-street-map"===(null==e?void 0:e.type)}export function isWebTileLayer(e){return"web-tile"===(null==e?void 0:e.type)||"open-street-map"===(null==e?void 0:e.type)}export function isVectorTileLayer(e){return"vector-tile"===(null==e?void 0:e.type)}export function isElevationLayer(e){return"elevation"===(null==e?void 0:e.type)}export function isSceneLayer(e){return"scene"===(null==e?void 0:e.type)}export function isPointCloudLayer(e){return"point-cloud"===(null==e?void 0:e.type)}export function isIntegratedMeshLayer(e){return"integrated-mesh"===(null==e?void 0:e.type)}export function isGroupLayer(e){return"group"===(null==e?void 0:e.type)}export function isWMSLayer(e){return"wms"===(null==e?void 0:e.type)}export function isWMTSLayer(e){return"wmts"===(null==e?void 0:e.type)}export function isBuildingSceneLayer(e){return"building-scene"===(null==e?void 0:e.type)}export function isTileLayer(e){return"tile"===(null==e?void 0:e.type)}export function isImageryTileLayer(e){return"imagery-tile"===(null==e?void 0:e.type)}export function isTiledImageServiceLayer(e){return isTileLayer(e)&&isImageService(e)}export function isTiledMapServiceLayer(e){return isTileLayer(e)&&!isImageService(e)}function isImageService(e){var r,a;const s=null!==(r=e.url)&&void 0!==r?r:null===(a=e.portalItem)||void 0===a?void 0:a.url;return s&&/\/ImageServer(\/|\/?$)/i.test(s)}export function isMapImageSublayer(e){var r;return"esri.layers.support.Sublayer"===(null===(r=e)||void 0===r?void 0:r.declaredClass)}export function isKMLSublayer(e){var r;return"esri.layers.support.KMLSublayer"===(null===(r=e)||void 0===r?void 0:r.declaredClass)}export function isWMTSSublayer(e){var r;return"esri.layers.support.WMTSSublayer"===(null===(r=e)||void 0===r?void 0:r.declaredClass)}export function isWMSSublayer(e){var r;return"esri.layers.support.WMSSublayer"===(null===(r=e)||void 0===r?void 0:r.declaredClass)}export function isBuildingComponentSublayer(e){const r=e;return"building-component"===(null==r?void 0:r.type)}export function isBuildingGroupSublayer(e){const r=e;return"building-group"===(null==r?void 0:r.type)}export function isLayerWithLegendEnabledProperty(e){return!(isBuildingSceneLayer(e)||isCSVLayer(e)||isElevationLayer(e)||isGraphicsLayer(e)||isGroupLayer(e)||isIntegratedMeshLayer(e)||isKMLLayer(e)||isOpenStreetMapLayer(e)||isPointCloudLayer(e)||isWebTileLayer(e)||isWMTSLayer(e)||isVectorTileLayer(e))}export function hasMmapLayer(e){return e.some((e=>{var r;const a=e._deferredLayerProperties;return!("string"==typeof(null==a?void 0:a.$ref)||!(null===(r=null==a?void 0:a.$ref)||void 0===r?void 0:r.path))||!!isGroupLayerExtension(e)&&hasMmapLayer(e.layerExtensions.toArray())}))}
1
+ import{LayerBase as LayerJson}from"../portal/_LayerBase.js";import{WellKnownBasemap}from"../support/esri.js";import{isGroupLayerExtension}from"./extensions.js";import{isBasemap}from"./mapping.js";export function layersAreEquivalent(e,r){if(e===r)return!0;const a=isLayer(e)?LayerJson.getLayerType(e):e.layerType;if(a!==(isLayer(r)?LayerJson.getLayerType(r):r.layerType))return!1;if("OpenStreetMap"===a)return!0;if("ArcGISFeatureLayer"===a){const a=isFeatureLayer(e)?`${e.url}/${e.layerId}`:e.url,s=isFeatureLayer(r)?`${r.url}/${r.layerId}`:r.url;return e.id===r.id||e.url&&urlsAreEquivalent(a,s)}return e.id===r.id||e.url&&urlsAreEquivalent(e.url,r.url)||(e.styleUrl||r.styleUrl)&&urlsAreEquivalent(e.url||e.styleUrl,r.url||r.styleUrl)||e.key&&e.key===r.key||e.urlTemplate&&urlsAreEquivalent(e.urlTemplate,r.urlTemplate)}export function basemapsAreEquivalent(e,r){var a,s,t,i,l,n,o,c;if(e===r)return!0;if(!e||!r)return!1;let y,p,d,u;return isBasemap(e)?(y=e.baseLayers.toArray(),d=e.referenceLayers.toArray()):(y=null!==(s=null===(a=e.baseMapLayers)||void 0===a?void 0:a.filter((e=>!e.isReference)))&&void 0!==s?s:[],d=null!==(i=null===(t=e.baseMapLayers)||void 0===t?void 0:t.filter((e=>e.isReference)))&&void 0!==i?i:[]),isBasemap(r)?(p=r.baseLayers.toArray(),u=r.referenceLayers.toArray()):(p=null!==(n=null===(l=r.baseMapLayers)||void 0===l?void 0:l.filter((e=>!e.isReference)))&&void 0!==n?n:[],u=null!==(c=null===(o=r.baseMapLayers)||void 0===o?void 0:o.filter((e=>e.isReference)))&&void 0!==c?c:[]),y.length===p.length&&y.every(((e,r)=>layersAreEquivalent(e,p[r])))&&d.length===u.length&&d.every(((e,r)=>layersAreEquivalent(e,u[r])))}export const standardBasemaps={[WellKnownBasemap.DARK_GRAY]:{baseMapLayers:[{id:"dark-gray-base-layer",title:"World Dark Gray Base",url:"https://services.arcgisonline.com/ArcGIS/rest/services/Canvas/World_Dark_Gray_Base/MapServer",layerType:"ArcGISTiledMapServiceLayer",showLegend:!1},{isReference:!0,id:"dark-gray-reference-layer",title:"World Dark Gray Reference",url:"https://services.arcgisonline.com/ArcGIS/rest/services/Canvas/World_Dark_Gray_Reference/MapServer",layerType:"ArcGISTiledMapServiceLayer",showLegend:!1}]},[WellKnownBasemap.DARK_GRAY_VECTOR]:{baseMapLayers:[{id:"dark-gray-base-layer",layerType:"VectorTileLayer",showLegend:!1,title:"Dark Gray Base",styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/5e9b3685f4c24d8781073dd928ebda50/resources/styles/root.json"},{id:"dark-gray-reference-layer",layerType:"VectorTileLayer",showLegend:!1,title:"Dark Gray Reference",styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/747cb7a5329c478cbe6981076cc879c5/resources/styles/root.json",isReference:!0}]},[WellKnownBasemap.GRAY]:{baseMapLayers:[{id:"gray-base-layer",title:"World Light Gray Base",url:"https://services.arcgisonline.com/ArcGIS/rest/services/Canvas/World_Light_Gray_Base/MapServer",layerType:"ArcGISTiledMapServiceLayer",showLegend:!1},{isReference:!0,id:"gray-reference-layer",title:"World Light Gray Reference",url:"https://services.arcgisonline.com/ArcGIS/rest/services/Canvas/World_Light_Gray_Reference/MapServer",layerType:"ArcGISTiledMapServiceLayer",showLegend:!1}]},[WellKnownBasemap.GRAY_VECTOR]:{baseMapLayers:[{id:"gray-base-layer",layerType:"VectorTileLayer",showLegend:!1,title:"Light Gray Base",styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/291da5eab3a0412593b66d384379f89f/resources/styles/root.json"},{id:"gray-reference-layer",layerType:"VectorTileLayer",showLegend:!1,title:"Light Gray Reference",styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/1768e8369a214dfab4e2167d5c5f2454/resources/styles/root.json",isReference:!0}]},[WellKnownBasemap.HYBRID]:{baseMapLayers:[{id:"hybrid-base-layer",layerType:"ArcGISTiledMapServiceLayer",showLegend:!1,url:"https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer",title:"World Imagery"},{id:"hybrid-reference-layer",layerType:"ArcGISTiledMapServiceLayer",showLegend:!1,url:"https://services.arcgisonline.com/ArcGIS/rest/services/Reference/World_Boundaries_and_Places/MapServer",title:"World Boundaries and Places",isReference:!0}]},[WellKnownBasemap.HYBRID_VECTOR]:{baseMapLayers:[{id:"hybrid-base-layer",layerType:"ArcGISTiledMapServiceLayer",showLegend:!1,url:"https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer",title:"World Imagery"},{id:"hybrid-reference-layer",layerType:"VectorTileLayer",showLegend:!1,title:"Hybrid Reference Layer",styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/30d6b8271e1849cd9c3042060001f425/resources/styles/root.json",isReference:!0}]},[WellKnownBasemap.NATIONAL_GEOGRAPHIC]:{baseMapLayers:[{id:"national-geographic-base-layer",title:"NatGeo World Map",url:"https://services.arcgisonline.com/ArcGIS/rest/services/NatGeo_World_Map/MapServer",layerType:"ArcGISTiledMapServiceLayer",showLegend:!1}]},[WellKnownBasemap.OCEANS]:{baseMapLayers:[{id:"oceans-base-layer",layerType:"ArcGISTiledMapServiceLayer",showLegend:!1,url:"https://services.arcgisonline.com/arcgis/rest/services/Ocean/World_Ocean_Base/MapServer",title:"World Ocean Base"},{id:"oceans-reference-layer",layerType:"ArcGISTiledMapServiceLayer",showLegend:!1,title:"World Ocean Reference",url:"https://services.arcgisonline.com/arcgis/rest/services/Ocean/World_Ocean_Reference/MapServer",isReference:!0}]},[WellKnownBasemap.OCEANS_VECTOR]:{baseMapLayers:[{id:"oceans-base-layer",layerType:"ArcGISTiledMapServiceLayer",showLegend:!1,url:"https://services.arcgisonline.com/arcgis/rest/services/Ocean/World_Ocean_Base/MapServer",title:"World Ocean Base"},{id:"oceans-reference-layer",layerType:"VectorTileLayer",showLegend:!1,title:"World Ocean Reference",styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/89860a5baf424f3ea0c655115faababe/resources/styles/root.json",isReference:!0}]},[WellKnownBasemap.OPEN_STREET_MAP]:{baseMapLayers:[{id:"osm-base-layer",layerType:"OpenStreetMap",showLegend:!1,title:"OpenStreetMap"}]},[WellKnownBasemap.OPEN_STREET_MAP_VECTOR]:{baseMapLayers:[{id:"osm-base-layer",layerType:"VectorTileLayer",showLegend:!1,title:"OpenStreetMap",styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/3e1a00aeae81496587988075fe529f71/resources/styles/root.json"}]},[WellKnownBasemap.SATELLITE]:{baseMapLayers:[{id:"satellite-base-layer",title:"World Imagery",url:"https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer",layerType:"ArcGISTiledMapServiceLayer",showLegend:!1}]},[WellKnownBasemap.STREETS]:{baseMapLayers:[{id:"streets-base-layer",title:"World Street Map",url:"https://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer",layerType:"ArcGISTiledMapServiceLayer",showLegend:!1}]},[WellKnownBasemap.STREETS_NAVIGATION_VECTOR]:{baseMapLayers:[{id:"streets-navigation-vector-base-layer",title:"World Navigation Map",layerType:"VectorTileLayer",showLegend:!1,styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/63c47b7177f946b49902c24129b87252/resources/styles/root.json"}]},[WellKnownBasemap.STREETS_NIGHT_VECTOR]:{baseMapLayers:[{id:"streets-night-vector-base-layer",title:"World Street Map (Night)",layerType:"VectorTileLayer",showLegend:!1,styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/86f556a2d1fd468181855a35e344567f/resources/styles/root.json"}]},[WellKnownBasemap.STREETS_RELIEF_VECTOR]:{baseMapLayers:[{id:"world-hillshade-layer",title:"World Hillshade",url:"https://services.arcgisonline.com/arcgis/rest/services/Elevation/World_Hillshade/MapServer",layerType:"ArcGISTiledMapServiceLayer",showLegend:!1},{id:"streets-relief-vector-base-layer",title:"World Streets Relief",layerType:"VectorTileLayer",showLegend:!1,styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/b266e6d17fc345b498345613930fbd76/resources/styles/root.json"}]},[WellKnownBasemap.STREETS_VECTOR]:{baseMapLayers:[{id:"streets-vector-base-layer",title:"World Street Map",layerType:"VectorTileLayer",showLegend:!1,styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/de26a3cf4cc9451298ea173c4b324736/resources/styles/root.json"}]},[WellKnownBasemap.TERRAIN]:{baseMapLayers:[{id:"terrain-base-layer",layerType:"ArcGISTiledMapServiceLayer",showLegend:!1,url:"https://services.arcgisonline.com/ArcGIS/rest/services/World_Terrain_Base/MapServer",title:"World Terrain Base"},{id:"terrain-reference-layer",layerType:"ArcGISTiledMapServiceLayer",showLegend:!1,url:"https://services.arcgisonline.com/ArcGIS/rest/services/Reference/World_Reference_Overlay/MapServer",title:"World Terrain Reference",isReference:!0}]},[WellKnownBasemap.TERRAIN_VECTOR]:{baseMapLayers:[{id:"world-hillshade",layerType:"ArcGISTiledMapServiceLayer",showLegend:!1,url:"https://services.arcgisonline.com/arcgis/rest/services/Elevation/World_Hillshade/MapServer",title:"World Hillshade"},{id:"terrain-base-layer",layerType:"VectorTileLayer",showLegend:!1,title:"World Terrain Base",styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/33064a20de0c48d2bb61efa8faca93a8/resources/styles/root.json"},{id:"terrain-reference-layer",layerType:"VectorTileLayer",showLegend:!1,title:"World Terrain Reference",styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/14fbc125ccc9488888b014db09f35f67/resources/styles/root.json",isReference:!0}]},[WellKnownBasemap.TOPO]:{baseMapLayers:[{id:"topo-base-layer",title:"World Topo Map",url:"https://services.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer",layerType:"ArcGISTiledMapServiceLayer",showLegend:!1}]},[WellKnownBasemap.TOPO_VECTOR]:{baseMapLayers:[{id:"world-hillshade-layer",title:"World Hillshade",url:"https://services.arcgisonline.com/arcgis/rest/services/Elevation/World_Hillshade/MapServer",layerType:"ArcGISTiledMapServiceLayer",showLegend:!1},{id:"topo-vector-base-layer",title:"World Topographic Map",layerType:"VectorTileLayer",showLegend:!1,styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/7dc6cea0b1764a1f9af2e679f642f0f5/resources/styles/root.json"}]}};function urlsAreEquivalent(e,r){return e&&r?e.toLowerCase().replace("www.arcgis.com","cdn.arcgis.com")===r.toLowerCase().replace("www.arcgis.com","cdn.arcgis.com"):e==r}const LAYER_DECLARED_CLASS_REGEX=/^esri[./]layers[./](tools[./])?\w+Layer$/;export function isLayer(e){const r=null==e?void 0:e.declaredClass;return"string"==typeof r&&LAYER_DECLARED_CLASS_REGEX.test(r)}export function isCSVLayer(e){return"csv"===(null==e?void 0:e.type)}export function isStreamLayer(e){return"stream"===(null==e?void 0:e.type)}export function isFeatureLayerBase(e){return isCSVLayer(e)||isFeatureLayer(e)||isStreamLayer(e)}export function isFeatureLayer(e){return"feature"===(null==e?void 0:e.type)}export function isGeoRssLayer(e){return"geo-rss"===(null==e?void 0:e.type)}export function isGraphicsLayer(e){return"graphics"===(null==e?void 0:e.type)}export function isImageryLayer(e){return"imagery"===(null==e?void 0:e.type)}export function isKMLLayer(e){return"kml"===(null==e?void 0:e.type)}export function isMapImageLayer(e){return"map-image"===(null==e?void 0:e.type)}export function isOpenStreetMapLayer(e){return"open-street-map"===(null==e?void 0:e.type)}export function isWebTileLayer(e){return"web-tile"===(null==e?void 0:e.type)||"open-street-map"===(null==e?void 0:e.type)}export function isVectorTileLayer(e){return"vector-tile"===(null==e?void 0:e.type)}export function isElevationLayer(e){return"elevation"===(null==e?void 0:e.type)}export function isSceneLayer(e){return"scene"===(null==e?void 0:e.type)}export function isPointCloudLayer(e){return"point-cloud"===(null==e?void 0:e.type)}export function isIntegratedMeshLayer(e){return"integrated-mesh"===(null==e?void 0:e.type)}export function isGroupLayer(e){return"group"===(null==e?void 0:e.type)}export function isWMSLayer(e){return"wms"===(null==e?void 0:e.type)}export function isWMTSLayer(e){return"wmts"===(null==e?void 0:e.type)}export function isBuildingSceneLayer(e){return"building-scene"===(null==e?void 0:e.type)}export function isTileLayer(e){return"tile"===(null==e?void 0:e.type)}export function isImageryTileLayer(e){return"imagery-tile"===(null==e?void 0:e.type)}export function isTiledImageServiceLayer(e){return isTileLayer(e)&&isImageService(e)}export function isTiledMapServiceLayer(e){return isTileLayer(e)&&!isImageService(e)}function isImageService(e){var r,a;const s=null!==(r=e.url)&&void 0!==r?r:null===(a=e.portalItem)||void 0===a?void 0:a.url;return s&&/\/ImageServer(\/|\/?$)/i.test(s)}export function isMapImageSublayer(e){var r;return"esri.layers.support.Sublayer"===(null===(r=e)||void 0===r?void 0:r.declaredClass)}export function isKMLSublayer(e){var r;return"esri.layers.support.KMLSublayer"===(null===(r=e)||void 0===r?void 0:r.declaredClass)}export function isWMTSSublayer(e){var r;return"esri.layers.support.WMTSSublayer"===(null===(r=e)||void 0===r?void 0:r.declaredClass)}export function isWMSSublayer(e){var r;return"esri.layers.support.WMSSublayer"===(null===(r=e)||void 0===r?void 0:r.declaredClass)}export function isBuildingComponentSublayer(e){const r=e;return"building-component"===(null==r?void 0:r.type)}export function isBuildingGroupSublayer(e){const r=e;return"building-group"===(null==r?void 0:r.type)}export function isLayerWithLegendEnabledProperty(e){return!(isBuildingSceneLayer(e)||isCSVLayer(e)||isElevationLayer(e)||isGraphicsLayer(e)||isGroupLayer(e)||isIntegratedMeshLayer(e)||isKMLLayer(e)||isOpenStreetMapLayer(e)||isPointCloudLayer(e)||isWebTileLayer(e)||isWMTSLayer(e)||isVectorTileLayer(e))}export function hasMmapLayer(e){return e.some((e=>{var r;const a=e._deferredLayerProperties;return!("string"==typeof(null==a?void 0:a.$ref)||!(null===(r=null==a?void 0:a.$ref)||void 0===r?void 0:r.path))||!!isGroupLayerExtension(e)&&hasMmapLayer(e.layerExtensions.toArray())}))}
@@ -1 +1 @@
1
- import{isLayerExtension,isSublayerExtension,isTableExtension}from"../ItemType.js";import{isMapImageSublayer,isWMSSublayer}from"./layers.js";export function isArcGISServiceTableExtension(e){return isTableExtension(e)&&"ArcGISServiceTable"===e.getDefaults().table.$tableType}export function isGroupLayerExtension(e){return isLayerExtension(e)&&!!e.layerExtensions}export function isFeatureLayerExtension(e){return isLayerExtension(e)&&"ArcGISFeatureLayer"===e.getDefaults().layer.layerType}export function isFeatureCollectionLayerExtension(e){var r;return isLayerExtension(e)&&"feature-collection-layer"===(null===(r=e._getSerializableLayerType)||void 0===r?void 0:r.call(e))}export function isCSVLayerExtension(e){return isLayerExtension(e)&&"CSV"===e.getDefaults().layer.layerType}export function isGeoRssLayerExtension(e){return isLayerExtension(e)&&"GeoRSS"===e.getDefaults().layer.layerType}export function isImageryLayerExtension(e){return isLayerExtension(e)&&"ArcGISImageServiceLayer"===e.getDefaults().layer.layerType}export function isSceneLayerExtension(e){return isLayerExtension(e)&&"ArcGISSceneServiceLayer"===e.getDefaults().layer.layerType}export function isStreamLayerExtension(e){return isLayerExtension(e)&&"ArcGISStreamLayer"===e.getDefaults().layer.layerType}export function isMapImageLayerExtension(e){return isLayerExtension(e)&&"ArcGISMapServiceLayer"===e.getDefaults().layer.layerType}export function isTileLayerExtension(e){return isLayerExtension(e)&&"ArcGISTiledMapServiceLayer"===e.getDefaults().layer.layerType}export function isWMSLayerExtension(e){return isLayerExtension(e)&&"WMS"===e.getDefaults().layer.layerType}export function isWMSSublayerExtension(e){var r;return isSublayerExtension(e)&&(isWMSSublayer(e.sublayer)||"WMSSublayer"===(null===(r=e._deferredSublayerProperties)||void 0===r?void 0:r.$sublayerType))}export function isMapImageSublayerExtension(e){var r;return isSublayerExtension(e)&&(isMapImageSublayer(e.sublayer)||"ArcGISMapServiceSublayer"===(null===(r=e._deferredSublayerProperties)||void 0===r?void 0:r.$sublayerType))}export function isWMTSLayerExtension(e){if(!isLayerExtension(e))return!1;const r=e.getDefaults().layer;return"WebTiledLayer"===r.layerType&&!!r.wmtsInfo}export function isKMLLayerExtension(e){return isLayerExtension(e)&&"KML"===e.getDefaults().layer.layerType}export function isBuildingSceneLayerExtension(e){return isLayerExtension(e)&&"BuildingSceneLayer"===e.getDefaults().layer.layerType}
1
+ import{isLayerExtension,isSublayerExtension,isTableExtension}from"../ItemType.js";import{isMapImageSublayer,isWMSSublayer}from"./layers.js";export function isArcGISServiceTableExtension(e){return isTableExtension(e)&&"ArcGISServiceTable"===e.getDefaults().table.$tableType}export function isGroupLayerExtension(e){return isLayerExtension(e)&&!!e.layerExtensions}export function isFeatureLayerExtension(e){var r;return isLayerExtension(e)&&"ArcGISFeatureLayer"===(null===(r=e.getDefaults().layer)||void 0===r?void 0:r.layerType)}export function isFeatureCollectionLayerExtension(e){var r;return isLayerExtension(e)&&"feature-collection-layer"===(null===(r=e._getSerializableLayerType)||void 0===r?void 0:r.call(e))}export function isCSVLayerExtension(e){return isLayerExtension(e)&&"CSV"===e.getDefaults().layer.layerType}export function isGeoRssLayerExtension(e){return isLayerExtension(e)&&"GeoRSS"===e.getDefaults().layer.layerType}export function isImageryLayerExtension(e){return isLayerExtension(e)&&"ArcGISImageServiceLayer"===e.getDefaults().layer.layerType}export function isSceneLayerExtension(e){return isLayerExtension(e)&&"ArcGISSceneServiceLayer"===e.getDefaults().layer.layerType}export function isStreamLayerExtension(e){return isLayerExtension(e)&&"ArcGISStreamLayer"===e.getDefaults().layer.layerType}export function isMapImageLayerExtension(e){return isLayerExtension(e)&&"ArcGISMapServiceLayer"===e.getDefaults().layer.layerType}export function isTileLayerExtension(e){return isLayerExtension(e)&&"ArcGISTiledMapServiceLayer"===e.getDefaults().layer.layerType}export function isWMSLayerExtension(e){return isLayerExtension(e)&&"WMS"===e.getDefaults().layer.layerType}export function isWMSSublayerExtension(e){var r;return isSublayerExtension(e)&&(isWMSSublayer(e.sublayer)||"WMSSublayer"===(null===(r=e._deferredSublayerProperties)||void 0===r?void 0:r.$sublayerType))}export function isMapImageSublayerExtension(e){var r;return isSublayerExtension(e)&&(isMapImageSublayer(e.sublayer)||"ArcGISMapServiceSublayer"===(null===(r=e._deferredSublayerProperties)||void 0===r?void 0:r.$sublayerType))}export function isWMTSLayerExtension(e){if(!isLayerExtension(e))return!1;const r=e.getDefaults().layer;return"WebTiledLayer"===r.layerType&&!!r.wmtsInfo}export function isKMLLayerExtension(e){return isLayerExtension(e)&&"KML"===e.getDefaults().layer.layerType}export function isBuildingSceneLayerExtension(e){return isLayerExtension(e)&&"BuildingSceneLayer"===e.getDefaults().layer.layerType}
package/version.d.ts CHANGED
@@ -1,4 +1,4 @@
1
1
  /**
2
2
  * The current version of the Geocortex ArcGIS Extensions API.
3
3
  */
4
- export declare const version = "34.2.2";
4
+ export declare const version = "34.3.1";
package/version.js CHANGED
@@ -1 +1 @@
1
- export const version="34.2.2";
1
+ export const version="34.3.1";