@vertigis/arcgis-extensions 41.4.1 → 41.4.3

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.
@@ -16,7 +16,7 @@
16
16
  <li><a href="../modules/version.html">version</a></li>
17
17
  <li><a href="version.version.html">version</a></li></ul>
18
18
  <h1>Variable version<code class="tsd-tag ts-flagConst">Const</code> </h1></div>
19
- <div class="tsd-signature"><span class="tsd-kind-variable">version</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">&quot;41.4.1&quot;</span><span class="tsd-signature-symbol"> = &quot;41.4.1&quot;</span></div>
19
+ <div class="tsd-signature"><span class="tsd-kind-variable">version</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">&quot;41.4.3&quot;</span><span class="tsd-signature-symbol"> = &quot;41.4.3&quot;</span></div>
20
20
  <div class="tsd-comment tsd-typography"><p>The current version of the Geocortex ArcGIS Extensions API.</p>
21
21
  </div></div>
22
22
  <div class="col-sidebar">
@@ -1 +1 @@
1
- import t from"@arcgis/core/Graphic";import{checkArg as i}from"../utilities/checkArg.js";const r="graphic-visible",e="graphic-popup-template";export function jsonToGraphic(s){i("featureJson",s).isNotMissing();const o={...s};let p=!0;o.attributes?.hasOwnProperty(r)&&(p=o.attributes[r]),o.attributes?.hasOwnProperty(e)&&(o.popupInfo=o.attributes[e]);const a=t.fromJSON(o);return a.visible=p,delete a.attributes[r],delete a.attributes[e],a}export function graphicToJson(t){i("graphic",t).isNotMissing();const e=t.toJSON();return e.attributes[r]=t.visible,e}
1
+ import t from"@arcgis/core/Graphic";import{checkArg as e}from"../utilities/checkArg.js";const i="graphic-visible",r="graphic-popup-template";export function jsonToGraphic(o){e("featureJson",o).isNotMissing();const s={...o};let p=!0;s.attributes?.hasOwnProperty(i)&&(p=s.attributes[i]),s.attributes?.hasOwnProperty(r)&&(s.popupInfo=s.attributes[r]);const a=t.fromJSON(s);return a.visible=p,delete a.attributes[i],delete a.attributes[r],a}export function graphicToJson(t){e("graphic",t).isNotMissing();const r=t.toJSON();return r.attributes[i]=t.visible,delete r.popupTemplate,delete r.aggregateGeometries,r}
package/json/LayerJson.js CHANGED
@@ -1 +1 @@
1
- import{isBuildingSceneLayer as e,isCSVLayer as r,isElevationLayer as t,isFeatureLayer as i,isGeoJSONLayer as a,isGeoRssLayer as o,isGraphicsLayer as n,isGroupLayer as y,isImageryLayer as s,isImageryTileLayer as p,isIntegratedMeshLayer as l,isKMLLayer as c,isMapImageLayer as u,isMapNotesLayer as S,isOpenStreetMapLayer as m,isPointCloudLayer as f,isRouteLayer as L,isSceneLayer as d,isStreamLayer as G,isSubtypeGroupLayer as T,isTiledImageServiceLayer as g,isTileLayer as I,isVectorTileLayer as A,isWebTileLayer as M,isWMSLayer as b,isWMTSLayer as v}from"../utilities/_layers.js";import{groupBy as J}from"../utilities/array.js";import{isBasemap as O,isGround as j,isWebMap as w,isWebScene as N}from"../utilities/mapping.js";import{geometryTypeToJson as P}from"./GeometryJson.js";export async function jsonToLayer(e){return(await import("../portal/LayerBase.js")).LayerBase.toEsriApiLayer(e)}export async function applyJsonToLayer(e,r){e&&Object.keys(e).some((e=>"$ref"!==e&&"layerType"!==e))&&await(await import("../portal/LayerBase.js")).LayerBase.applyToEsriApiLayer(e,r)}export function layerToJson(e){if(n(e))return function(e){const r={id:e.id,title:e.title,layerType:"ArcGISFeatureLayer",visibility:e.visible,opacity:e.opacity,listMode:e.listMode,featureCollection:{layers:[]}},t=J(e.graphics.toArray(),(e=>P(e.geometry.type))),i="graphic-id";for(const[a,o]of t.entries())r.featureCollection.layers.push({layerDefinition:{geometryType:a,name:h(a)},featureSet:{features:o.map((r=>({geometry:r.geometry.toJSON(),attributes:{...r.attributes,[i]:e.graphics.indexOf(r)},symbol:r.symbol?.toJSON(),popupInfo:r.popupTemplate?.toJSON()}))),geometryType:a}});return r}(e);const r=e=>e?"GroupLayer"===e.layerType?[e,...e.layers?.flatMap(r)??[]]:[e]:[],{parent:t}=e;if(y(t)){const i=layerToJson(t);return r(i)?.find((r=>r.id===e.id))}if(w(t)||N(t)){const i=t.toJSON();return i.operationalLayers?.flatMap(r)?.find((r=>r.id===e.id))}if(j(t)){const r=t.toJSON();return r.layers?.find((r=>r.id===e.id))}if(O(t)){const r=t.toJSON();return r.baseMapLayers?.find((r=>r.id===e.id))}return e.write({},{layerContainerType:"operational-layers",origin:"web-scene"})}function h(e){switch(e){case"esriGeometryPoint":return"Points";case"esriGeometryMultipoint":return"Multipoints";case"esriGeometryPolyline":return"Polylines";case"esriGeometryEnvelope":case"esriGeometryPolygon":return"Polygons";default:return"Unknown Geometry"}}export function getLayerJsonType(J){return r(J)?"CSV":G(J)?"ArcGISStreamLayer":i(J)||n(J)||S(J)||L(J)?"ArcGISFeatureLayer":a(J)?"GeoJSON":o(J)?"GeoRSS":s(J)?"ArcGISImageServiceLayer":p(J)?"ArcGISTiledImageServiceLayer":c(J)?"KML":u(J)?"ArcGISMapServiceLayer":m(J)?"OpenStreetMap":M(J)?"WebTiledLayer":A(J)?"VectorTileLayer":g(J)?"ArcGISTiledImageServiceLayer":I(J)?"ArcGISTiledMapServiceLayer":t(J)?"ArcGISTiledElevationServiceLayer":d(J)?"ArcGISSceneServiceLayer":f(J)?"PointCloudLayer":l(J)?"IntegratedMeshLayer":y(J)?"GroupLayer":b(J)?"WMS":v(J)?"WebTiledLayer":e(J)?"BuildingSceneLayer":T(J)?"SubtypeGroupLayer":void 0}
1
+ import e from"@arcgis/core/core/Collection.js";import{isBuildingSceneLayer as r,isCSVLayer as t,isElevationLayer as i,isFeatureLayer as o,isGeoJSONLayer as a,isGeoRssLayer as n,isGraphicsLayer as y,isGroupLayer as l,isImageryLayer as s,isImageryTileLayer as p,isIntegratedMeshLayer as c,isKMLLayer as f,isMapImageLayer as u,isMapNotesLayer as m,isOpenStreetMapLayer as d,isPointCloudLayer as S,isRouteLayer as L,isSceneLayer as g,isStreamLayer as T,isSubtypeGroupLayer as G,isTiledImageServiceLayer as I,isTileLayer as b,isVectorTileLayer as v,isWebTileLayer as J,isWMSLayer as A,isWMTSLayer as M}from"../utilities/_layers.js";import{groupBy as j}from"../utilities/array.js";import{isBasemap as w,isGround as O,isMap as D,isWebMap as h,isWebScene as C}from"../utilities/mapping.js";import{graphicToJson as N}from"./FeatureJson.js";import{geometryTypeToJson as x}from"./GeometryJson.js";export async function jsonToLayer(e){return(await import("../portal/LayerBase.js")).LayerBase.toEsriApiLayer(e)}export async function applyJsonToLayer(e,r){e&&Object.keys(e).some((e=>"$ref"!==e&&"layerType"!==e))&&await(await import("../portal/LayerBase.js")).LayerBase.applyToEsriApiLayer(e,r)}export function layerToJson(r){const t=e=>e?"GroupLayer"===e.layerType?[e,...e.layers?.flatMap(t)??[]]:[e]:[],{parent:i}=r;let a;try{if(l(i)){const e=layerToJson(i);a=t(e)?.find((e=>e.id===r.id))}else if(h(i)||C(i)){const e=i.toJSON();a=e.operationalLayers?.flatMap(t)?.find((e=>e.id===r.id))}else if(O(i)){const e=i.toJSON();a=e.layers?.find((e=>e.id===r.id))}else if(w(i)){const e=i.toJSON();a=e.baseMapLayers?.find((e=>e.id===r.id))}}catch{}if(!a){if(y(r))return function(e){const r={id:e.id,title:e.title,layerType:"ArcGISFeatureLayer",visibility:e.visible,opacity:e.opacity,listMode:e.listMode,featureCollection:{layers:[]}},t=j(e.graphics.toArray(),(e=>x(e.geometry.type))),i="graphic-id";for(const[o,a]of t.entries())r.featureCollection.layers.push({layerDefinition:{geometryType:o,name:E(o)},featureSet:{features:a.map((r=>({geometry:r.geometry.toJSON(),attributes:{...r.attributes,[i]:e.graphics.indexOf(r)},symbol:r.symbol?.toJSON(),popupInfo:r.popupTemplate?.toJSON()}))),geometryType:o}});return r}(r);if(o(r)&&e.isCollection(r.source))return function(e){const r=e.write({},{layerContainerType:"operational-layers",origin:"web-map"}),t={featureSet:{features:e.source.map(N).toArray(),geometryType:x(e.geometryType)}};return t.layerDefinition=r.layerDefinition??{},delete r.layerDefinition,t.layerDefinition.geometryType=x(e.geometryType),t.layerDefinition.objectIdField=e.objectIdField,t.layerDefinition.hasZ=!0,t.layerDefinition.elevationInfo=e.elevationInfo?.write(),t.popupInfo=r.popupInfo,delete r.popupInfo,t.layerDefinition.fields=e.fields.map((e=>e.toJSON())),t.layerDefinition.extent=e.fullExtent?.toJSON(),r.featureCollection={layers:[t],showLegend:e.legendEnabled},r}(r);a=r.write({},{layerContainerType:"operational-layers",origin:C(P(r))?"web-scene":"web-map"})}return a}function P(e){let{parent:r}=e;for(;r?.parent;)r=r.parent;return D(r)?r:void 0}function E(e){switch(e){case"esriGeometryPoint":return"Points";case"esriGeometryMultipoint":return"Multipoints";case"esriGeometryPolyline":return"Polylines";case"esriGeometryEnvelope":case"esriGeometryPolygon":return"Polygons";default:return"Unknown Geometry"}}export function getLayerJsonType(e){return t(e)?"CSV":T(e)?"ArcGISStreamLayer":o(e)||y(e)||m(e)||L(e)?"ArcGISFeatureLayer":a(e)?"GeoJSON":n(e)?"GeoRSS":s(e)?"ArcGISImageServiceLayer":p(e)?"ArcGISTiledImageServiceLayer":f(e)?"KML":u(e)?"ArcGISMapServiceLayer":d(e)?"OpenStreetMap":J(e)?"WebTiledLayer":v(e)?"VectorTileLayer":I(e)?"ArcGISTiledImageServiceLayer":b(e)?"ArcGISTiledMapServiceLayer":i(e)?"ArcGISTiledElevationServiceLayer":g(e)?"ArcGISSceneServiceLayer":S(e)?"PointCloudLayer":c(e)?"IntegratedMeshLayer":l(e)?"GroupLayer":A(e)?"WMS":M(e)?"WebTiledLayer":r(e)?"BuildingSceneLayer":G(e)?"SubtypeGroupLayer":void 0}
@@ -1 +1 @@
1
- var e;import{__decorate as s}from"tslib";import a from"@arcgis/core/Basemap";import t from"@arcgis/core/core/Collection";import{ArgumentError as i}from"../ArgumentError.js";import{EntityBase as r}from"../Entity.js";import{InvalidOperationError as n}from"../InvalidOperationError.js";import{ItemType as o}from"../ItemType.js";import{TaskSettings as p}from"../data/TaskSettings.js";import{applyJsonToBasemap as m,jsonToBasemap as h}from"../json/BasemapJson.js";import{serializable as c}from"../support/Serializable.js";import{basemapsAreEquivalent as l,createStandardBasemap as d}from"../utilities/basemaps.js";import{checkArg as y}from"../utilities/checkArg.js";import{load as _}from"../utilities/esri.js";import{find as b}from"../utilities/iterable.js";import{layersAreEquivalent as f}from"../utilities/layers.js";import{getLogger as E}from"../utilities/log.js";import{isBasemap as x}from"../utilities/mapping.js";import{onCollectionPropertyChange as u}from"../utilities/watch.js";import{_assignLayerExtensions as L}from"./_LayerExtension.js";import{LayerExtensionCollectionBase as g}from"./support/_LayerExtensionCollection.js";const B=E("BasemapExtension");export const defaultBasemapExtensionFactory={create:e=>new w(e)};let w=e=class extends r{get basemap(){return this._basemap}get mapExtension(){return this._mapExtension}get baseLayerExtensions(){return this._baseLayerExtensions}get referenceLayerExtensions(){return this._referenceLayerExtensions}get iconUrl(){return this._basemap?this._basemap.thumbnailUrl:this._iconUrl}set iconUrl(e){this._basemap?this._basemap.thumbnailUrl=e:this._iconUrl=e}constructor(e){super(e),this.included=!0,this._itemType=o.BASEMAP_EXTENSION,this._watchHandles=[],this._onBaseLayerAddedPostInitialize=async e=>this._onLayerAddedPostInitialize(e),this._onReferenceLayerAddedPostInitialize=async e=>this._onLayerAddedPostInitialize(e),this._onLayerAddedPostInitialize=async e=>{try{await e.initialize()}catch(s){B.error({message:`Error occurred while initializing layer extension for layer '${e.title??e.layer.id??e.id}'.`,error:s})}};const s=e||{};this._baseLayerExtensions=new z(this),this._referenceLayerExtensions=new P(this),this.taskSettings=this._createTaskSettings(),this.taskSettings.enableSearch=!1,this.taskSettings.enableQuery=!1,this.taskSettings.enableIdentify=!1;let{basemap:t}=s;!t&&s.baseMap&&(t=s.baseMap,E("geocortex.api.mapping.BasemapExtension").warn("BasemapExtension.properties 'baseMap' should be 'basemap'")),x(t)?this._setBasemap(t):t?this._deferredBasemapProperties=t:this._setBasemap(new a)}static create(s){if(!e.factory)throw new n("Cannot create BasemapExtension: no BasemapExtension factory has been registered.");return e.factory.create(s)}_setMapExtension(e){this._mapExtension=e,this.notifyChange("mapExtension"),this._baseLayerExtensions.onMapExtensionChanged(),this._referenceLayerExtensions.onMapExtensionChanged()}async _switchBasemap(e){if(e===this.basemap)return;y("newBasemap",e).isNotMissing().satisfies((e=>!this.basemap||l(this.basemap,e)),"Basemaps must have compatible layers."),this._deferredBasemapProperties=void 0;const s=new Map,a=new Map;if(this.basemap&&(this.basemap.baseLayers.forEach((e=>{s.set(e,this.baseLayerExtensions.forLayer(e))})),this.basemap.referenceLayers.forEach((e=>{a.set(e,this.referenceLayerExtensions.forLayer(e))}))),await _(this.basemap),this.basemap){const s=this.basemap.toJSON();await m(s,e)}this._setBasemap(e);const t=[];for(const e of this.basemap.baseLayers.toArray()){const a=b(s.entries(),(([s])=>f(s,e)));a&&t.push((async()=>{const s=a[1];await s._switchLayer(e),this._baseLayerExtensions._register(s)})())}for(const e of this.basemap.referenceLayers.toArray()){const s=b(a.entries(),(([s])=>f(s,e)));s&&t.push((async()=>{const a=s[1];await a._switchLayer(e),this._referenceLayerExtensions._register(a)})())}this.isInitialized&&t.push(this._initializeChildren()),await Promise.all(t)}async _createBackingBasemap(){if(this._deferredBasemapProperties)return this._createBackingBasemapPromise=this._createBackingBasemapPromise??(async()=>{if("string"==typeof this._deferredBasemapProperties)this._setBasemap(await d(this._deferredBasemapProperties));else{const e=await h(this._deferredBasemapProperties);this._setBasemap(e)}})(),this._createBackingBasemapPromise}_createTaskSettings(){return new p}_getSerializableProperties(){return{...super._getSerializableProperties(),description:"initial",included:{serializeModes:["initial"],default:!0},iconUrl:{serializeModes:["initial"]},onClick:"initial",basemap:{serializeModes:["initial","project"],serialize:()=>this._serializeBasemap(),isDefault:e=>JSON.stringify(e)===JSON.stringify(new a),deserialize:e=>{if(x(e)){if(e!==this.basemap)throw new i("properties.basemap","Property 'basemap' is read-only.")}else if("string"==typeof e){if((!this._basemap||e!==this._basemap.id)&&this._deferredBasemapProperties!==e)throw new i("properties.basemap","Property 'basemap' is read-only.")}else if(this._basemap)return m(e,this.basemap)}},baseLayerExtensions:{serializeModes:["initial","project"],deserialize:e=>{L(this.baseLayerExtensions,e)}},referenceLayerExtensions:{serializeModes:["initial","project"],deserialize:e=>{L(this.referenceLayerExtensions,e)}},taskSettings:{serialize:!1}}}async _onInitialize(){await this._createBackingBasemap(),await _(this.basemap),this.basemap.baseLayers||(this.basemap.baseLayers=new t),this.basemap.referenceLayers||(this.basemap.referenceLayers=new t),this._baseLayerExtensions.onParentInitialized(),this._referenceLayerExtensions.onParentInitialized(),this.mapExtension&&this.basemap&&(this.mapExtension.map.basemap=this.basemap)}async _postInitialize(){await super._postInitialize(),this._deferredBasemapProperties=void 0,this._watchHandles.push(u(this,"basemap.baseLayers",(async e=>{const s=(e.added??[]).map((e=>this.baseLayerExtensions.forLayer(e)));await Promise.all(s.map((e=>e.initialize())))})),u(this,"basemap.referenceLayers",(async e=>{const s=(e.added??[]).map((e=>this.referenceLayerExtensions.forLayer(e)));await Promise.all(s.map((e=>e.initialize())))})))}async _onDestroy(){this._watchHandles.forEach((e=>e?.remove())),await super._onDestroy()}*_initializableChildCollections(){yield*super._initializableChildCollections(),yield this.baseLayerExtensions,yield this.referenceLayerExtensions}_setBasemap(e){this._basemap=e,this._iconUrl&&(this.basemap.thumbnailUrl=this._iconUrl,this._iconUrl=void 0),this.watch("basemap.thumbnailUrl",(()=>this.notifyChange("iconUrl")),!0),this.notifyChange("basemap")}_serializeBasemap(){const e=this.basemap&&this.basemap.toJSON();if(this._deferredBasemapProperties||!e)return this._deferredBasemapProperties;const s=this.baseLayerExtensions.filter((e=>e&&!e.layer));if(s.length>0){const a=s.toArray().map((e=>{const{layer:s}=e.toJSON();return s}));e.baseMapLayers.concat(a)}const a=this.referenceLayerExtensions.filter((e=>e&&!e.layer));if(a.length>0){const s=a.toArray().map((e=>{const{layer:s}=e.toJSON();return s.isReference=!0,s}));e.baseMapLayers.concat(s)}return e}};w.factory=defaultBasemapExtensionFactory,w=e=s([c],w);export{w as BasemapExtension};class z extends g{get _mapExtension(){return this._parent.mapExtension}constructor(e){super(e,"basemap.baseLayers")}add(e,s){return y("layerX",e).isNotMissing(),e.basemapExtension&&e.basemapExtension!==this._parent&&e.basemapExtension.baseLayerExtensions.remove(e),e._setBasemapExtension(this._parent),super.add(e,s)}_onAdded(e){super._onAdded(e),e._setBasemapExtension(this._parent)}_onRemoved(e){super._onRemoved(e),e._setBasemapExtension(void 0)}}class P extends g{get _mapExtension(){return this._parent.mapExtension}constructor(e){super(e,"basemap.referenceLayers")}add(e,s){return y("layerX",e).isNotMissing(),e.basemapExtension&&e.basemapExtension!==this._parent&&e.basemapExtension.referenceLayerExtensions.remove(e),e._setBasemapExtension(this._parent),super.add(e,s)}_onAdded(e){super._onAdded(e),e._setBasemapExtension(this._parent)}_onRemoved(e){super._onRemoved(e),e._setBasemapExtension(void 0)}}
1
+ var e;import{__decorate as s}from"tslib";import a from"@arcgis/core/Basemap";import t from"@arcgis/core/core/Collection";import{ArgumentError as i}from"../ArgumentError.js";import{EntityBase as r}from"../Entity.js";import{InvalidOperationError as n}from"../InvalidOperationError.js";import{ItemType as o}from"../ItemType.js";import{TaskSettings as p}from"../data/TaskSettings.js";import{applyJsonToBasemap as m,jsonToBasemap as h}from"../json/BasemapJson.js";import{serializable as c}from"../support/Serializable.js";import{basemapsAreEquivalent as l,createStandardBasemap as d}from"../utilities/basemaps.js";import{checkArg as y}from"../utilities/checkArg.js";import{load as _}from"../utilities/esri.js";import{find as f}from"../utilities/iterable.js";import{layersAreEquivalent as b}from"../utilities/layers.js";import{getLogger as E}from"../utilities/log.js";import{isBasemap as x}from"../utilities/mapping.js";import{onCollectionPropertyChange as u}from"../utilities/watch.js";import{_assignLayerExtensions as L}from"./_LayerExtension.js";import{LayerExtensionCollectionBase as g}from"./support/_LayerExtensionCollection.js";const B=E("BasemapExtension");export const defaultBasemapExtensionFactory={create:e=>new w(e)};let w=e=class extends r{get basemap(){return this._basemap}get mapExtension(){return this._mapExtension}get baseLayerExtensions(){return this._baseLayerExtensions}get referenceLayerExtensions(){return this._referenceLayerExtensions}get iconUrl(){return this._basemap?this._basemap.thumbnailUrl:this._iconUrl}set iconUrl(e){this._basemap?this._basemap.thumbnailUrl=e:this._iconUrl=e}constructor(e){super(e),this.included=!0,this._itemType=o.BASEMAP_EXTENSION,this._watchHandles=[],this._onBaseLayerAddedPostInitialize=async e=>this._onLayerAddedPostInitialize(e),this._onReferenceLayerAddedPostInitialize=async e=>this._onLayerAddedPostInitialize(e),this._onLayerAddedPostInitialize=async e=>{try{await e.initialize()}catch(s){B.error({message:`Error occurred while initializing layer extension for layer '${e.title??e.layer.id??e.id}'.`,error:s})}};const s=e||{};this._baseLayerExtensions=new z(this),this._referenceLayerExtensions=new P(this),this.taskSettings=this._createTaskSettings(),this.taskSettings.enableSearch=!1,this.taskSettings.enableQuery=!1,this.taskSettings.enableIdentify=!1;let{basemap:t}=s;!t&&s.baseMap&&(t=s.baseMap,E("geocortex.api.mapping.BasemapExtension").warn("BasemapExtension.properties 'baseMap' should be 'basemap'")),x(t)?this._setBasemap(t):t?this._deferredBasemapProperties=t:this._setBasemap(new a)}static create(s){if(!e.factory)throw new n("Cannot create BasemapExtension: no BasemapExtension factory has been registered.");return e.factory.create(s)}_setMapExtension(e){this._mapExtension=e,this.notifyChange("mapExtension"),this._baseLayerExtensions.onMapExtensionChanged(),this._referenceLayerExtensions.onMapExtensionChanged()}async _switchBasemap(e){if(e===this.basemap)return;y("newBasemap",e).isNotMissing().satisfies((e=>!this.basemap||l(this.basemap,e)),"Basemaps must have compatible layers."),this._deferredBasemapProperties=void 0;const s=new Map,a=new Map;if(this.basemap&&(this.basemap.baseLayers.forEach((e=>{s.set(e,this.baseLayerExtensions.forLayer(e))})),this.basemap.referenceLayers.forEach((e=>{a.set(e,this.referenceLayerExtensions.forLayer(e))}))),await _(this.basemap),this.basemap){const s=this.basemap.toJSON();await m(s,e)}this._setBasemap(e);const t=[];for(const e of this.basemap.baseLayers.toArray()){const a=f(s.entries(),(([s])=>b(s,e)));a&&t.push((async()=>{const s=a[1];await s._switchLayer(e),this._baseLayerExtensions._register(s)})())}for(const e of this.basemap.referenceLayers.toArray()){const s=f(a.entries(),(([s])=>b(s,e)));s&&t.push((async()=>{const a=s[1];await a._switchLayer(e),this._referenceLayerExtensions._register(a)})())}this.isInitialized&&t.push(this._initializeChildren()),await Promise.all(t)}async _createBackingBasemap(){if(this._deferredBasemapProperties)return this._createBackingBasemapPromise=this._createBackingBasemapPromise??(async()=>{if("string"==typeof this._deferredBasemapProperties)this._setBasemap(await d(this._deferredBasemapProperties));else{const e=await h(this._deferredBasemapProperties);this._setBasemap(e)}})(),this._createBackingBasemapPromise}_createTaskSettings(){return new p}_getSerializableProperties(){return{...super._getSerializableProperties(),description:"initial",included:{serializeModes:["initial"],default:!0},iconUrl:{serializeModes:["initial"]},onClick:"initial",basemap:{serializeModes:["initial","project"],serialize:()=>this._serializeBasemap(),isDefault:e=>JSON.stringify(e)===JSON.stringify(new a),deserialize:e=>{if(x(e)){if(e!==this.basemap)throw new i("properties.basemap","Property 'basemap' is read-only.")}else if("string"==typeof e){if((!this._basemap||e!==this._basemap.id)&&this._deferredBasemapProperties!==e)throw new i("properties.basemap","Property 'basemap' is read-only.")}else if(this._basemap)return m(e,this.basemap)}},baseLayerExtensions:{serializeModes:["initial","project"],deserialize:e=>{L(this.baseLayerExtensions,e)}},referenceLayerExtensions:{serializeModes:["initial","project"],deserialize:e=>{L(this.referenceLayerExtensions,e)}},taskSettings:{serialize:!1}}}async _onInitialize(){await this._createBackingBasemap(),await _(this.basemap),this.basemap.baseLayers||(this.basemap.baseLayers=new t),this.basemap.referenceLayers||(this.basemap.referenceLayers=new t),this._baseLayerExtensions.onParentInitialized(),this._referenceLayerExtensions.onParentInitialized(),this.mapExtension&&this.basemap&&(this.mapExtension.map.basemap=this.basemap)}async _postInitialize(){await super._postInitialize(),this._deferredBasemapProperties=void 0,this._watchHandles.push(u(this,"basemap.baseLayers",(async e=>{const s=(e.added??[]).map((e=>this.baseLayerExtensions.forLayer(e)));await Promise.all(s.map((e=>e.initialize())))})),u(this,"basemap.referenceLayers",(async e=>{const s=(e.added??[]).map((e=>this.referenceLayerExtensions.forLayer(e)));await Promise.all(s.map((e=>e.initialize())))})))}async _onDestroy(){this._watchHandles.forEach((e=>e?.remove())),await super._onDestroy()}*_initializableChildCollections(){yield*super._initializableChildCollections(),yield this.baseLayerExtensions,yield this.referenceLayerExtensions}_setBasemap(e){this._basemap=e,this._iconUrl&&(this.basemap.thumbnailUrl=this._iconUrl,this._iconUrl=void 0),this.watch("basemap.thumbnailUrl",(()=>this.notifyChange("iconUrl")),!0),this.notifyChange("basemap")}_serializeBasemap(){const e=this.basemap?.toJSON();if(e&&e.baseMapLayers?.forEach((e=>{delete e.layers})),this._deferredBasemapProperties||!e)return this._deferredBasemapProperties;const s=this.baseLayerExtensions.filter((e=>e&&!e.layer));if(s.length>0){const a=s.toArray().map((e=>{const{layer:s}=e.toJSON();return s}));e.baseMapLayers.concat(a)}const a=this.referenceLayerExtensions.filter((e=>e&&!e.layer));if(a.length>0){const s=a.toArray().map((e=>{const{layer:s}=e.toJSON();return s.isReference=!0,s}));e.baseMapLayers.concat(s)}return e}};w.factory=defaultBasemapExtensionFactory,w=e=s([c],w);export{w as BasemapExtension};class z extends g{get _mapExtension(){return this._parent.mapExtension}constructor(e){super(e,"basemap.baseLayers")}add(e,s){return y("layerX",e).isNotMissing(),e.basemapExtension&&e.basemapExtension!==this._parent&&e.basemapExtension.baseLayerExtensions.remove(e),e._setBasemapExtension(this._parent),super.add(e,s)}_onAdded(e){super._onAdded(e),e._setBasemapExtension(this._parent)}_onRemoved(e){super._onRemoved(e),e._setBasemapExtension(void 0)}}class P extends g{get _mapExtension(){return this._parent.mapExtension}constructor(e){super(e,"basemap.referenceLayers")}add(e,s){return y("layerX",e).isNotMissing(),e.basemapExtension&&e.basemapExtension!==this._parent&&e.basemapExtension.referenceLayerExtensions.remove(e),e._setBasemapExtension(this._parent),super.add(e,s)}_onAdded(e){super._onAdded(e),e._setBasemapExtension(this._parent)}_onRemoved(e){super._onRemoved(e),e._setBasemapExtension(void 0)}}
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": "41.4.1",
4
+ "version": "41.4.3",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "https://dev.azure.com/vertigis/Studio/_git/arcgis-extensions-ts"
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 = "41.4.1";
4
+ export declare const version = "41.4.3";
package/version.js CHANGED
@@ -1 +1 @@
1
- export const version="41.4.1";
1
+ export const version="41.4.3";