@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
1 lines • 41.5 kB
JavaScript
"use strict";(self.webpackChunkRemoteClient=self.webpackChunkRemoteClient||[]).push([[9962],{8303(e,t,r){r.d(t,{A:()=>v});var i=r(5482),s=r(92602),l=r(70333),o=r(11254),n=r(60999),a=r(49186),u=r(53966),h=r(97768),c=r(74887),p=r(84952),d=r(91429),y=r(77548),f=r(20655),m=r(80812),g=r(41318),_=r(10407),A=r(36005),w=r(43937);const v=e=>{const t=e;let v=class extends t{constructor(){super(...arguments),this.resourceReferences={portalItem:null,paths:[]},this.userHasEditingPrivileges=!0,this.userHasFullEditingPrivileges=!1,this.userHasUpdateItemPrivileges=!1}destroy(){this.portalItem=(0,h.pR)(this.portalItem),this.resourceReferences.portalItem=null,this.resourceReferences.paths.length=0}get portalItem(){return this._get("portalItem")}set portalItem(e){e!==this._get("portalItem")&&(this.removeOrigin("portal-item"),this._set("portalItem",e))}readPortalItem(e,t,r){if(t.itemId)return new m.default({id:t.itemId,portal:r?.portal})}writePortalItem(e,t){e?.id&&(t.itemId=e.id)}async loadFromPortal(e,t){if(this.portalItem?.id)try{const{load:i}=await r.e(1204).then(r.bind(r,41204));return(0,c.Te)(t),await i({instance:this,supportedTypes:e.supportedTypes,validateItem:e.validateItem,supportsData:e.supportsData,layerModuleTypeMap:e.layerModuleTypeMap,populateGroupLayer:e.populateGroupLayer},t)}catch(e){throw(0,c.zf)(e)||u.A.getLogger(this).warn(`Failed to load layer (${this.title}, ${this.id}) portal item (${this.portalItem.id})\n ${e}`),e}}async finishLoadEditablePortalLayer(e){this._set("userHasEditingPrivileges",await this._fetchUserHasEditingPrivileges(e).catch(e=>((0,c.QP)(e),!0)))}async setUserPrivileges(e,t){if(!s.A.userPrivilegesApplied)return this.finishLoadEditablePortalLayer(t);if(this.url)try{const{features:{edit:r,fullEdit:i},content:{updateItem:s}}=await this._fetchUserPrivileges(e,t);this._set("userHasEditingPrivileges",r),this._set("userHasFullEditingPrivileges",i),this._set("userHasUpdateItemPrivileges",s)}catch(e){(0,c.QP)(e)}}async _fetchUserPrivileges(e,t){let r=this.portalItem;if(!e||!r||!r.loaded||r.sourceUrl)return this._fetchFallbackUserPrivileges(t);const i=!l.id?.findCredential(this.url),s=e===r.id;if(s&&r.portal.user)return this._getUserPrivileges(r,i);let o,n;if(s)o=r.portal.url;else try{o=await(0,y.wI)(this.url,t)}catch(e){(0,c.QP)(e)}if(!o||!(0,p.b8)(o,r.portal.url))return this._fetchFallbackUserPrivileges(t);try{const e=null!=t?t.signal:null;n=await(l.id?.getCredential(`${o}/sharing`,{prompt:!1,signal:e}))}catch(e){(0,c.QP)(e)}const a=!0,u=!1,h=!1;if(!n)return{features:{edit:a,fullEdit:u},content:{updateItem:h}};try{if(s?await r.reload():(r=new m.default({id:e,portal:{url:o}}),await r.load(t)),r.portal.user)return this._getUserPrivileges(r,i)}catch(e){(0,c.QP)(e)}return{features:{edit:a,fullEdit:u},content:{updateItem:h}}}_getUserPrivileges(e,t){const r=(0,_.It)(e);return t&&(r.features.edit=!0),r}async _fetchFallbackUserPrivileges(e){let t=!0;try{t=await this._fetchUserHasEditingPrivileges(e)}catch(e){(0,c.QP)(e)}return{features:{edit:t,fullEdit:!1},content:{updateItem:!1}}}async _fetchUserHasEditingPrivileges(e){const t=this.url?l.id?.findCredential(this.url):null;if(!t)return!0;const r=S.credential===t?S.user:await this._fetchEditingUser(e);return S.credential=t,S.user=r,null==r?.privileges||r.privileges.includes("features:user:edit")}async _fetchEditingUser(e){const t=this.portalItem?.portal?.user;if(t)return t;const r=l.id?.findServerInfo(this.url??"");if(!r?.owningSystemUrl)return null;const i=`${r.owningSystemUrl}/sharing/rest`,s=f.A.getDefault();if(s&&s.loaded&&(0,p.S8)(s.restUrl)===(0,p.S8)(i))return s.user;const a=`${i}/community/self`,u=null!=e?e.signal:null,h=await(0,n.Ke)((0,o.A)(a,{authMode:"no-prompt",query:{f:"json"},signal:u}));return h.ok?g.A.fromJSON(h.value.data):null}read(e,t){t&&(t.layer=this),super.read(e,t)}write(e,t){const r=t?.portal,i=this.portalItem?.id&&(this.portalItem.portal||f.A.getDefault());return r&&i&&!(0,p.ut)(i.restUrl,r.restUrl)?(t.messages&&t.messages.push(new a.A("layer:cross-portal",`The layer '${this.title} (${this.id})' cannot be persisted because it refers to an item on a different portal than the one being saved to. To save, set layer.portalItem to null or save to the same portal as the item associated with the layer`,{layer:this})),null):super.write(e,{...t,layer:this})}};return(0,i.Cg)([(0,d.MZ)({type:m.default})],v.prototype,"portalItem",null),(0,i.Cg)([(0,A.w)("web-document","portalItem",["itemId"])],v.prototype,"readPortalItem",null),(0,i.Cg)([(0,w.K)("web-document","portalItem",{itemId:{type:String}})],v.prototype,"writePortalItem",null),(0,i.Cg)([(0,d.MZ)({clonable:!1})],v.prototype,"resourceReferences",void 0),(0,i.Cg)([(0,d.MZ)({type:Boolean,readOnly:!0})],v.prototype,"userHasEditingPrivileges",void 0),(0,i.Cg)([(0,d.MZ)({type:Boolean,readOnly:!0})],v.prototype,"userHasFullEditingPrivileges",void 0),(0,i.Cg)([(0,d.MZ)({type:Boolean,readOnly:!0})],v.prototype,"userHasUpdateItemPrivileges",void 0),v=(0,i.Cg)([(0,d.$K)("esri.layers.mixins.PortalLayer")],v),v},S={credential:null,user:null}},10407(e,t,r){r.d(t,{It:()=>d,LG:()=>o,OM:()=>u,Sm:()=>h,Y:()=>n,bK:()=>a,mm:()=>p,sQ:()=>c});var i=r(91218),s=r(16930),l=r(28735);function o(e,t){if(!n(e,t)){const r=e.typeKeywords;r?r.push(t):e.typeKeywords=[t]}}function n(e,t){return!!e.typeKeywords?.includes(t)}function a(e){return n(e,p.HOSTED_SERVICE)}function u(e,t){const r=e.typeKeywords;if(r){const e=r.indexOf(t);e>-1&&r.splice(e,1)}}function h(e,t,r){r?o(e,t):u(e,t)}async function c(e){const t=e.clone().normalize();let r;if(t.length>1)for(const e of t)r?e.width>r.width&&(r=e):r=e;else r=t[0];return async function(e){const t=e.spatialReference;if(t.isWGS84)return e.clone();if(t.isWebMercator)return(0,l.ci)(e);const r=s.A.WGS84;return await(0,i.initializeProjection)(t,r),(0,i.project)(e,r)}(r)}const p={CHARTS:"Charts",DYNAMIC:"Dynamic",DEVELOPER_BASEMAP:"DeveloperBasemap",GROUP_LAYER_MAP:"Map",HOSTED_SERVICE:"Hosted Service",JSAPI:"ArcGIS API for JavaScript",LOCAL_SCENE:"ViewingMode-Local",METADATA:"Metadata",MULTI_LAYER:"Multilayer",ORIENTED_IMAGERY_LAYER:"OrientedImageryLayer",SINGLE_LAYER:"Singlelayer",SUBTYPE_GROUP_LAYER:"SubtypeGroupLayer",SUBTYPE_GROUP_TABLE:"SubtypeGroupTable",TABLE:"Table",TILED_IMAGERY:"Tiled Imagery"};function d(e){const{portal:t,isOrgItem:r,itemControl:i}=e,s=t.user?.privileges;let l=!s||s.includes("features:user:edit"),o=!!r&&!!s?.includes("features:user:fullEdit");const n="update"===i||"admin"===i;return n?o=l=!0:o&&(l=!0),{features:{edit:l,fullEdit:o},content:{updateItem:n}}}},18768(e,t,r){r.d(t,{b:()=>n});var i=r(5482),s=r(53966),l=r(91429),o=r(60694);const n=e=>{const t=e;let r=class extends t{get title(){if(this._get("title")&&"defaults"!==this.originOf("title"))return this._get("title");if(this.url){const e=(0,o.qg)(this.url);if(e?.title)return e.title}return this._get("title")||""}set title(e){this._set("title",e)}set url(e){this._set("url",(0,o.Jf)(e,s.A.getLogger(this)))}};return(0,i.Cg)([(0,l.MZ)()],r.prototype,"title",null),(0,i.Cg)([(0,l.MZ)({type:String})],r.prototype,"url",null),r=(0,i.Cg)([(0,l.$K)("esri.layers.mixins.ArcGISService")],r),r}},44159(e,t,r){r.d(t,{A:()=>s});var i=r(93687);class s{static{this.pool=new i.A(()=>new s(""),null,null,25,50)}static getId(e,t,r,i){return"object"==typeof e?`${e.level}/${e.row}/${e.col}/${e.world}`:`${e}/${t}/${r}/${i}`}constructor(e,t,r,i){this.set(e,t,r,i)}get key(){return this}get id(){return this.toString()}get normalizedId(){return`${this.level}/${this.row}/${this.col}`}set id(e){this.set(e)}get hash(){const e=4095&this.row,t=4095&this.col,r=63&this.level;return(3&this.world)<<30|t<<22|e<<8|r}acquire(e,t,r,i){this.set(e,t,r,i)}contains(e){const t=e.level-this.level;return t>=0&&this.row===e.row>>t&&this.col===e.col>>t&&this.world===e.world}containsChild(e){const t=e.level-this.level;return t>0&&this.row===e.row>>t&&this.col===e.col>>t&&this.world===e.world}equals(e){return this.level===e.level&&this.row===e.row&&this.col===e.col&&this.world===e.world}clone(){return new s(this)}release(){this.level=0,this.row=0,this.col=0,this.world=0}set(e,t,r,i){if(null==e)this.level=0,this.row=0,this.col=0,this.world=0;else if("object"==typeof e)this.level=e.level||0,this.row=e.row||0,this.col=e.col||0,this.world=e.world||0;else if("string"==typeof e){const[t,r,i,s]=e.split("/");this.level=parseFloat(t),this.row=parseFloat(r),this.col=parseFloat(i),this.world=parseFloat(s)}else this.level=+e,this.row=+t,this.col=+r,this.world=+i||0;return this}toString(){return`${this.level}/${this.row}/${this.col}/${this.world}`}getParentKey(){return this.level<=0?null:new s(this.level-1,this.row>>1,this.col>>1,this.world)}getNormalizedNeighbor(e,t,r){const i=this.clone();return i.col+=e,i.row+=t,r.normalizeKey(i),i}getChildKeys(){const e=this.level+1,t=this.row<<1,r=this.col<<1,i=this.world;return[new s(e,t,r,i),new s(e,t,r+1,i),new s(e,t+1,r,i),new s(e,t+1,r+1,i)]}compareRowMajor(e){return this.row<e.row?-1:this.row>e.row?1:this.col<e.col?-1:this.col>e.col?1:0}}},48757(e,t,r){r.r(t),r.d(t,{default:()=>ye});var i=r(5482),s=r(11254),l=r(60999),o=r(4718),n=r(25728),a=r(74887),u=r(84952),h=r(91429),c=r(5443),p=r(16930),d=r(4146),y=r(52136),f=r(89186),m=r(18768),g=r(63074),_=r(69208),A=r(16131),w=r(8303),v=r(54310),S=r(25036),b=r(10873);let x=null;var I=r(49186),R=r(53966),P=r(34275);class E{constructor(e,t){this._spriteSource=e,this._maxTextureSize=t,this.devicePixelRatio=1,this._spriteImageFormat="png",this._isRetina=!1,this._spritesData={},this.image=null,this.width=null,this.height=null,this.loadStatus="not-loaded","url"===e.type&&e.spriteFormat&&(this._spriteImageFormat=e.spriteFormat),e.pixelRatio&&(this.devicePixelRatio=e.pixelRatio),this.baseURL=e.spriteUrl}get spriteNames(){const e=[];for(const t in this._spritesData)e.push(t);return e.sort(),e}getSpriteInfo(e){return this._spritesData?this._spritesData[e]:null}async load(e){if(this.baseURL){this.loadStatus="loading";try{await this._loadSprites(e),this.loadStatus="loaded"}catch{this.loadStatus="failed"}}else this.loadStatus="failed"}async _loadSprites(e){this._isRetina=this.devicePixelRatio>1.15;const{width:t,height:r,data:i,json:s}=await this._getSpriteData(this._spriteSource,e),l=Object.keys(s);if(!l||0===l.length||!i)return this._spritesData=this.image=null,void(this.width=this.height=0);this._spritesData=s,this.width=t,this.height=r;const o=Math.max(this._maxTextureSize,4096);if(t>o||r>o){const e=`Sprite resource for style ${this.baseURL} is bigger than the maximum allowed of ${o} pixels}`;throw R.A.getLogger("esri.layers.support.SpriteSource").error(e),new I.A("SpriteSource",e)}let n;for(let e=0;e<i.length;e+=4)n=i[e+3]/255,i[e]=i[e]*n,i[e+1]=i[e+1]*n,i[e+2]=i[e+2]*n;this.image=i}async _getSpriteData(e,t){if("image"===e.type){let t,r;if(this.devicePixelRatio<1.15){if(!e.spriteSource1x)throw new I.A("SpriteSource","no image data provided for low resolution sprites!");t=e.spriteSource1x.image,r=e.spriteSource1x.json}else{if(!e.spriteSource2x)throw new I.A("SpriteSource","no image data provided for high resolution sprites!");t=e.spriteSource2x.image,r=e.spriteSource2x.json}return"width"in t&&"height"in t&&"data"in t&&((0,P.mw)(t.data)||(0,P.UR)(t.data))?{width:t.width,height:t.height,data:new Uint8Array(t.data),json:r}:{...M(t),json:r}}const r=(0,u.An)(this.baseURL),i=r.query?"?"+(0,u.x0)(r.query):"",l=this._isRetina?"@2x":"",o=`${r.path}${l}.${this._spriteImageFormat}${i}`,n=`${r.path}${l}.json${i}`,[a,h]=await Promise.all([(0,s.A)(n,t),(0,s.A)(o,{responseType:"image",...t})]);return{...M(h.data),json:a.data}}}function M(e){const t=document.createElement("canvas"),r=t.getContext("2d");t.width=e.width,t.height=e.height,r.drawImage(e,0,0,e.width,e.height);const i=r.getImageData(0,0,e.width,e.height);return{width:e.width,height:e.height,data:new Uint8Array(i.data)}}var C=r(87045),U=r(25943),z=r(21325),T=r(28735),L=r(44159);class O{constructor(e){this.url=e}destroy(){this._tileIndexPromise=null}async fetchTileIndex(){return this._tileIndexPromise||(this._tileIndexPromise=(0,s.A)(this.url).then(e=>e.data.index)),this._tileIndexPromise}async dataKey(e,t){const r=await this.fetchTileIndex();return(0,a.Te)(t),this._getIndexedDataKey(r,e)}_getIndexedDataKey(e,t){const r=[t];if(t.level<0||t.row<0||t.col<0||t.row>>t.level>0||t.col>>t.level>0)return null;let i=t;for(;0!==i.level;)i=new L.A(i.level-1,i.row>>1,i.col>>1,i.world),r.push(i);let s,l,o=e,n=r.pop();if(1===o)return n;for(;r.length;)if(s=r.pop(),l=(1&s.col)+((1&s.row)<<1),o){if(0===o[l]){n=null;break}if(1===o[l]){n=s;break}n=s,o=o[l]}return n}}var k=r(97768);class D{constructor(e,t){this._tilemap=e,this._tileIndexUrl=t}destroy(){this._tilemap=(0,k.pR)(this._tilemap),this._tileIndexPromise=null}async fetchTileIndex(e){return this._tileIndexPromise||(this._tileIndexPromise=(0,s.A)(this._tileIndexUrl,{query:{...e?.query}}).then(e=>e.data.index)),this._tileIndexPromise}dataKey(e,t){const{level:r,row:i,col:s}=e,l=new L.A(e);return this._tilemap.fetchAvailabilityUpsample(r,i,s,l,t).then(()=>(l.world=e.world,l)).catch(e=>{if((0,a.zf)(e))throw e;return null})}}var j=r(91869);class B{constructor(e){this._tileUrl=e,this._promise=null,this._abortController=null,this._abortOptions=[]}getData(e){(null==this._promise||(0,a.G4)(this._abortController?.signal))&&(this._promise=this._makeRequest(this._tileUrl));const t=this._abortOptions;return t.push(e),(0,a.u7)(e,()=>{t.every(e=>(0,a.G4)(e))&&this._abortController.abort()}),this._promise.then(e=>(0,o.o8)(e))}async _makeRequest(e){this._abortController=new AbortController;const{data:t}=await(0,s.A)(e,{responseType:"array-buffer",signal:this._abortController.signal});return t}}const K=new Map;function $(e,t){return(0,j.tE)(K,e,()=>new B(e)).getData(t).finally(()=>K.delete(e))}class F{constructor(e,t,r){this.tilemap=null,this.tileInfo=null,this.capabilities=null,this.fullExtent=null,this.initialExtent=null,this.name=e,this.sourceUrl=t;const i=(0,u.An)(this.sourceUrl),s=(0,o.o8)(r),l=s.tiles;if(i)for(let e=0;e<l.length;e++){const t=(0,u.An)(l[e]);t&&((0,u.oP)(t.path)||(t.path=(0,u.fj)(i.path,t.path)),l[e]=(0,u.a6)(t.path,{...i.query,...t.query}))}this.tileServers=l;const n=r.capabilities&&r.capabilities.split(",").map(e=>e.toLowerCase().trim()),a=!0===r?.exportTilesAllowed,h=!0===n?.includes("tilemap"),p=a&&r.hasOwnProperty("maxExportTilesCount")?r.maxExportTilesCount:0;this.capabilities={operations:{supportsExportTiles:a,supportsTileMap:h},exportTiles:a?{maxExportTilesCount:+p}:null},this.tileInfo=C.A.fromJSON(s.tileInfo);const d=r.tileMap?(0,u.a6)((0,u.fj)(i.path,r.tileMap),i.query??{}):null;h?(this.type="vector-tile",this.tilemap=new D(new U.d({layer:{parsedUrl:i,tileInfo:this.tileInfo},minLOD:s.minLOD??this.tileInfo.lods[0].level,maxLOD:s.maxLOD??this.tileInfo.lods[this.tileInfo.lods.length-1].level}),d)):d&&(this.tilemap=new O(d)),this.fullExtent=c.A.fromJSON(r.fullExtent),this.initialExtent=c.A.fromJSON(r.initialExtent)}destroy(){this.tilemap?.destroy()}async getRefKey(e,t){return this.tilemap?this.tilemap.dataKey(e,t):e}requestTile(e,t,r,i){return function(e,t,r,i,s){const l=(0,u.An)(e),o=l.query;if(o)for(const[e,s]of Object.entries(o))switch(s){case"{x}":o[e]=i.toString();break;case"{y}":o[e]=r.toString();break;case"{z}":o[e]=t.toString()}const n=l.path;return $((0,u.a6)(n.replaceAll(/\{z\}/gi,t.toString()).replaceAll(/\{y\}/gi,r.toString()).replaceAll(/\{x\}/gi,i.toString()),{...l.query}),s)}(this.tileServers[t%this.tileServers.length],e,t,r,i)}isCompatibleWith(e){const t=this.tileInfo,r=e.tileInfo;if(!t.spatialReference.equals(r.spatialReference))return!1;if(!t.origin.equals(r.origin))return!1;if(Math.round(t.dpi)!==Math.round(r.dpi))return!1;const i=t.lods,s=r.lods,l=Math.min(i.length,s.length);for(let e=0;e<l;e++){const t=i[e],r=s[e];if(t.level!==r.level||Math.round(t.scale)!==Math.round(r.scale))return!1}return!0}}function N(...e){let t;for(const r of e)if(null!=r)if((0,u.BQ)(r)){if(t){const e=t.split("://")[0];t=e+":"+r.trim()}}else t=(0,u.oP)(r)?r:(0,u.fj)(t,r);return t?(0,u.UC)(t):void 0}async function Z(e,t,r,i,l){let o,n,h;if((0,a.Te)(l),"string"==typeof r){const e=(0,u.S8)(r);h=await(0,s.A)(e,{...l,responseType:"json",query:{f:"json",...l?.query}}),h.ssl&&(o&&(o=o.replace(/^http:/i,"https:")),n&&(n=n.replace(/^http:/i,"https:"))),o=e,n=e}else null!=r&&(h={data:r},o=r.jsonUrl||null,n=i);const c=h?.data;if(H(c))return e.styleUrl=o||null,async function(e,t,r,i){const s=r?(0,u.nM)(r):(0,u.gd)();e.styleBase=s,e.style=t,"webp"===t["sprite-format"]?.toLowerCase()&&(e.spriteFormat="webp");const l=[];if(t.sources&&t.sources.esri){const r=t.sources.esri;r.url?await Z(e,"esri",N(s,r.url),void 0,i):l.push(Z(e,"esri",r,s,i))}for(const r of Object.keys(t.sources))"esri"!==r&&"tilejson"!==r&&"vector"===t.sources[r].type&&(t.sources[r].url?l.push(Z(e,r,N(s,t.sources[r].url),void 0,i)):t.sources[r].tiles&&l.push(Z(e,r,t.sources[r],s,i)));await Promise.all(l)}(e,c,n,l);if(function(e){return!H(e)}(c))return e.sourceUrl?q(e,c,n,!1,t,l):(e.sourceUrl=o||null,G(c)&&null==e.style&&(t="tilejson"),q(e,c,n,!0,t,l));throw new Error("You must specify the URL or the JSON for a service or for a style.")}function G(e){return"object"==typeof e&&!!e&&"tilejson"in e&&null!=e.tilejson}function H(e){return!!e&&"sources"in e&&!!e.sources}async function q(e,t,r,i,s,l){const n=r?(0,u.UC)(r)+"/":(0,u.gd)(),a=function(e,t){const r=512;if(function(e){return e.hasOwnProperty("tileInfo")}(e)){const t=e?.tileInfo;return null!=t&&(null==t.rows&&(t.rows=r),null==t.cols&&(t.cols=r)),e}const i={xmin:-20037507.067161843,ymin:-20037507.067161843,xmax:20037507.067161843,ymax:20037507.067161843,spatialReference:{wkid:102100,latestWkid:3857}};let s,l=null;if(G(e)){const{bounds:r,vector_layers:i}=e;if(r){const e=(0,T.Gh)({x:r[0],y:r[1],spatialReference:(0,o.o8)(z.KK)}),t=(0,T.Gh)({x:r[2],y:r[3],spatialReference:(0,o.o8)(z.KK)});l={xmin:e.x,ymin:e.y,xmax:t.x,ymax:t.y,spatialReference:(0,o.o8)(z.ch)}}if(i&&i.length>0)s={version:8,sprite:"",glyphs:"",sources:{tilejson:{type:"vector",url:e.tilejson}},layers:Q(i)};else if(null==t.style)throw new Error("The TileJSON source does not contain any vector_layers. This VectorTileLayer cannot be loaded.")}null===l&&(l=i);let n=78271.51696400007,a=295828763.7957775;const u=[],h=e.hasOwnProperty("maxzoom")&&null!=e.maxzoom?Math.abs(+e.maxzoom):22;for(let e=0;e<=h;e++)u.push({level:e,scale:a,resolution:n}),n/=2,a/=2;return{capabilities:"TilesOnly",initialExtent:l,fullExtent:i,minScale:0,maxScale:0,tiles:e.tiles,tileInfo:{rows:r,cols:r,dpi:96,format:"pbf",origin:{x:-20037508.342787,y:20037508.342787},lods:u,spatialReference:(0,o.o8)(z.ch)},defaultStyles:s}}(t,e),h=new F(s,(0,u.a6)(n,l?.query??{}),a);if(!i&&e.primarySourceName in e.sourceNameToSource){const t=e.sourceNameToSource[e.primarySourceName];if(!t.isCompatibleWith(h))return;null!=h.fullExtent&&(null!=t.fullExtent?t.fullExtent.union(h.fullExtent):t.fullExtent=h.fullExtent.clone()),t.tileInfo&&h.tileInfo&&t.tileInfo.lods.length<h.tileInfo.lods.length&&(t.tileInfo=h.tileInfo)}if(i&&(e.sourceBase=n,e.source=t,e.validatedSource=a,e.primarySourceName=s),e.sourceNameToSource[s]=h,!G(e)&&"defaultStyles"in t&&!e.style){if(null==t.defaultStyles)throw new Error;return"string"==typeof t.defaultStyles?Z(e,"",N(n,t.defaultStyles,"root.json"),void 0,l):Z(e,"",t.defaultStyles,N(n,"root.json"),l)}if(G(t)&&null==e.style&&a.defaultStyles)return Z(e,"",a.defaultStyles,N(n,"root.json"),l)}function Q(e){const t=[];for(const r of e)r.geometry_type?t.push(V(r.geometry_type.toLowerCase(),r,!1)):(t.push(V("polygon",r,!0)),t.push(V("line",r,!0)),t.push(V("circle",r,!0)));return t}function V(e,t,r){const{id:i,minzoom:s,maxzoom:l}=t,o={type:"polygon"===e||"polygons"===e?"fill":"line"===e||"lines"===e?"line":"circle",id:i,source:"tilejson","source-layer":i,minzoom:s,maxzoom:l};switch(e){case"fill":r&&(o.id+="_polygon",o.filter='(["==", "$type", "Polygon"])'),o.paint={"fill-color":"#808080"};break;case"line":r&&(o.id+="_line",o.filter='(["==", "$type", "LineString"])');break;case"circle":r&&(o.id+="_point",o.filter='(["==", "$type", "Point"])')}return o}var W=r(88788),J=r(39131),Y=r(97159),X=r(86738),ee=r(91806);const te=1e-6;function re(e,t){if(e===t)return!0;if(null==e&&null!=t)return!1;if(null!=e&&null==t)return!1;if(null==e||null==t)return!1;if(!e.spatialReference.equals(t.spatialReference)||e.dpi!==t.dpi)return!1;const r=e.origin,i=t.origin;if(Math.abs(r.x-i.x)>=te||Math.abs(r.y-i.y)>=te)return!1;let s,l;e.lods[0].scale>t.lods[0].scale?(s=e,l=t):(l=e,s=t);for(let e=s.lods[0].scale;e>=l.lods[l.lods.length-1].scale-te;e/=2)if(Math.abs(e-l.lods[0].scale)<te)return!0;return!1}function ie(e,t){if(e===t)return e;if(null==e&&null!=t)return t;if(null!=e&&null==t)return e;if(null==e||null==t)return null;const r=e.size[0],i=e.format,s=e.dpi,l=new X.A({x:e.origin.x,y:e.origin.y}),o=e.spatialReference,n=e.lods[0].scale>t.lods[0].scale?e.lods[0]:t.lods[0],a=e.lods[e.lods.length-1].scale<=t.lods[t.lods.length-1].scale?e.lods[e.lods.length-1]:t.lods[t.lods.length-1],u=n.scale,h=n.resolution,c=a.scale,p=[];let d=u,y=h,f=0;for(;d>=c;)p.push(new ee.A({level:f,resolution:y,scale:d})),f++,d/=2,y/=2;return new C.A({size:[r,r],dpi:s,format:i||"pbf",origin:l,lods:p,spatialReference:o})}var se=r(45013);class le{constructor(e){this.getUnmaskedRenderer=e}}function oe(e){const t=e.getExtension("WEBGL_debug_renderer_info");return t?new le(()=>e.getParameter(t.UNMASKED_RENDERER_WEBGL)):null}let ne;function ae(){return ne??=function(){const e=new ue,t=function(e){if("undefined"==typeof WebGL2RenderingContext)return null;const t=document.createElement("canvas");if(!t)return null;let r=t.getContext("webgl2",{failIfMajorPerformanceCaveat:!0});if(null==r&&(r=t.getContext("webgl2"),null!=r&&(e.majorPerformanceCaveat=!0,e.unmaskedRenderer=oe(r)?.getUnmaskedRenderer()??"unknown")),null==r)return r;e.available=!0,e.maxTextureSize=r.getParameter(r.MAX_TEXTURE_SIZE),e.supportsVertexShaderSamplers=r.getParameter(r.MAX_VERTEX_TEXTURE_IMAGE_UNITS)>0;const i=r.getShaderPrecisionFormat(r.FRAGMENT_SHADER,r.HIGH_FLOAT);return i&&(e.supportsHighPrecisionFragment=i.precision>0),r}(e);return null==t||(e.supportsColorBufferFloat=null!==t.getExtension("EXT_color_buffer_float"),e.supportsColorBufferFloatBlend=null!==t.getExtension("EXT_float_blend"),e.supportsColorBufferHalfFloat=e.supportsColorBufferFloat||null!==t.getExtension("EXT_color_buffer_half_float")),e}(),ne}class ue{constructor(){this.available=!1,this.majorPerformanceCaveat=!1,this.maxTextureSize=0,this.supportsVertexShaderSamplers=!1,this.supportsHighPrecisionFragment=!1,this.supportsColorBufferFloat=!1,this.supportsColorBufferFloatBlend=!1,this.supportsColorBufferHalfFloat=!1,this.unmaskedRenderer="unloaded"}}var he=r(59923),ce=r(43937),pe=r(36005);let de=class extends((0,g.dM)((0,S.j)((0,v.J)((0,f.f)((0,m.b)((0,A.q)((0,w.A)((0,_.d)((0,y.p)((0,n.M)(d.A))))))))))){constructor(...e){super(...e),this._spriteSourceMap=new Map,this.currentStyleInfo=null,this.isReference=null,this.operationalLayerType="VectorTileLayer",this.path=null,this.refreshInterval=0,this.style=null,this.tilemapCache=null,this.type="vector-tile"}normalizeCtorArgs(e,t){return"string"==typeof e?{url:e,...t}:e}destroy(){if(this.sourceNameToSource)for(const e of Object.values(this.sourceNameToSource))e?.destroy();this.primarySource?.destroy(),this._spriteSourceMap.clear()}async prefetchResources(e){await this.loadSpriteSource(globalThis.devicePixelRatio||1,e)}load(e){const t=this.loadFromPortal({supportedTypes:["Vector Tile Service"],supportsData:!1},e).catch(a.QP).then(async()=>{if(!this.portalItem?.id)return;const t=`${this.portalItem.itemCdnUrl}/resources/styles/root.json`;(await(0,s.A)(t,{...e,query:{f:"json",...this.customParameters,token:this.apiKey},authMode:this.portalItem.portal.authMode})).data&&this.read({url:t},(0,W.v)(this.portalItem,"portal-item"))}).catch(a.QP).then(()=>this._loadStyle(e));return this.addResolvingPromise(t),Promise.resolve(this)}get apiKey(){return super.apiKey}set apiKey(e){super.apiKey=e}get portalItem(){return super.portalItem}set portalItem(e){super.portalItem=e}get attributionDataUrl(){const e=this.currentStyleInfo,t=e?.serviceUrl&&(0,u.An)(e.serviceUrl);if(!t)return null;const r=this._getDefaultAttribution(t.path);return r?(0,u.a6)(r,{...this.customParameters,token:this.apiKey}):null}get capabilities(){const e=this.primarySource;return e?e.capabilities:{operations:{supportsExportTiles:!1,supportsTileMap:!1},exportTiles:null}}get fullExtent(){return this.primarySource?.fullExtent||null}get initialExtent(){return this.primarySource?.initialExtent||null}get parsedUrl(){return this.serviceUrl?(0,u.An)(this.serviceUrl):null}get serviceUrl(){return this.currentStyleInfo?.serviceUrl||null}get spatialReference(){return this.tileInfo?.spatialReference??null}get styleUrl(){return this.currentStyleInfo?.styleUrl||null}writeStyleUrl(e,t){e&&(0,u.BQ)(e)&&(e=`https:${e}`);const r=(0,J.py)(e);t.styleUrl=(0,Y.e)(e,r)}get tileInfo(){const e=[];for(const t in this.sourceNameToSource)e.push(this.sourceNameToSource[t]);let t=this.primarySource?.tileInfo||new C.A;if(e.length>1)for(let r=0;r<e.length;r++)re(t,e[r].tileInfo)&&(t=ie(t,e[r].tileInfo));return t}readTilemapCache(e,t){const r=t.capabilities?.includes("Tilemap");return r?new U.d({layer:this}):null}set url(e){if(!e)return void this._set("url",e);const t=(0,u.An)(e);this._set("url",t.path),t.query&&(this.customParameters={...this.customParameters,...t.query})}readVersion(e,t){return t.version?parseFloat(t.version):parseFloat(t.currentVersion)}async loadSpriteSource(e=1,t){if(!this._spriteSourceMap.has(e)){const r=ae().maxTextureSize,i=this.currentStyleInfo?.spriteUrl?(0,u.a6)(this.currentStyleInfo.spriteUrl,{...this.customParameters,token:this.apiKey}):null,s=new E({type:"url",spriteUrl:i,pixelRatio:e,spriteFormat:this.currentStyleInfo?.spriteFormat},r);await s.load(t),this._spriteSourceMap.set(e,s)}return this._spriteSourceMap.get(e)}async setSpriteSource(e,t){if(!e)return null;const r=ae().maxTextureSize,i=e.spriteUrl,s=i?(0,u.a6)(i,{...this.customParameters,token:this.apiKey}):null;if(!s&&"url"===e.type)return null;const l=new E(e,r);try{await l.load(t);const r=e.pixelRatio||1;return this._spriteSourceMap.clear(),this._spriteSourceMap.set(r,l),s&&this.currentStyleInfo&&(this.currentStyleInfo.spriteUrl=s),this.emit("spriteSource-change",{spriteSource:l}),l}catch(e){(0,a.QP)(e)}return null}async loadStyle(e,t){const r=e||this.style||this.url;return this._loadingTask&&"string"==typeof r&&this.url===r||(this._loadingTask?.abort(),this._loadingTask=(0,l.UT)(e=>(this._spriteSourceMap.clear(),this._getSourceAndStyle(r,{signal:e})),t)),this._loadingTask.promise}getStyleLayerId(e){return this.styleRepository.getStyleLayerId(e)}getStyleLayerIndex(e){return this.styleRepository.getStyleLayerIndex(e)}getPaintProperties(e){return(0,o.o8)(this.styleRepository?.getPaintProperties(e))}setPaintProperties(e,t){const r=this.styleRepository.isPainterDataDriven(e);this.styleRepository.setPaintProperties(e,t);const i=this.styleRepository.isPainterDataDriven(e);this.emit("paint-change",{layer:e,paint:t,isDataDriven:r||i})}getStyleLayer(e){return(0,o.o8)(this.styleRepository.getStyleLayer(e))}setStyleLayer(e,t){this.styleRepository.setStyleLayer(e,t),this.emit("style-layer-change",{layer:e,index:t})}deleteStyleLayer(e){this.styleRepository.deleteStyleLayer(e),this.emit("delete-style-layer",{layer:e})}getLayoutProperties(e){return(0,o.o8)(this.styleRepository.getLayoutProperties(e))}setLayoutProperties(e,t){this.styleRepository.setLayoutProperties(e,t),this.emit("layout-change",{layer:e,layout:t})}setStyleLayerVisibility(e,t){this.styleRepository.setStyleLayerVisibility(e,t),this.emit("style-layer-visibility-change",{layer:e,visibility:t})}getStyleLayerVisibility(e){return this.styleRepository.getStyleLayerVisibility(e)}write(e,t){return t?.origin&&!this.styleUrl?((0,he.U4)(t,this,"style defined by JSON only are not supported"),null):super.write(e,t)}getTileUrl(e,t,r){return null}async _getSourceAndStyle(e,t){if(!e)throw new Error("invalid style!");const r=await async function(e,t){const r={source:null,sourceBase:null,sourceUrl:null,validatedSource:null,style:null,styleBase:null,styleUrl:null,sourceNameToSource:{},primarySourceName:"",spriteFormat:"png"},[i,s]="string"==typeof e?[e,null]:[null,e.jsonUrl];return await Z(r,"esri",e,s,t),{layerDefinition:r.validatedSource,url:i,serviceUrl:r.sourceUrl,style:r.style,styleUrl:r.styleUrl,spriteUrl:r.style&&r.style.sprite&&N(r.styleBase,r.style.sprite),spriteFormat:r.spriteFormat,glyphsUrl:r.style&&r.style.glyphs&&N(r.styleBase,r.style.glyphs),sourceNameToSource:r.sourceNameToSource,primarySourceName:r.primarySourceName}}(e,{...t,query:{...this.customParameters,token:this.apiKey}});"webp"===r.spriteFormat&&(await function(){if(x)return x;const e={lossy:"UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",lossless:"UklGRhoAAABXRUJQVlA4TA0AAAAvAAAAEAcQERGIiP4HAA==",alpha:"UklGRkoAAABXRUJQVlA4WAoAAAAQAAAAAAAAAAAAQUxQSAwAAAARBxAR/Q9ERP8DAABWUDggGAAAABQBAJ0BKgEAAQAAAP4AAA3AAP7mtQAAAA==",animation:"UklGRlIAAABXRUJQVlA4WAoAAAASAAAAAAAAAAAAQU5JTQYAAAD/////AABBTk1GJgAAAAAAAAAAAAAAAAAAAGQAAABWUDhMDQAAAC8AAAAQBxAREYiI/gcA"};return x=new Promise(t=>{const r=new Image;r.onload=()=>{r.onload=r.onerror=null,t(r.width>0&&r.height>0)},r.onerror=()=>{r.onload=r.onerror=null,t(!1)},r.src="data:image/webp;base64,"+e.lossy}),x}()||(r.spriteFormat="png")),this._set("currentStyleInfo",{...r}),"string"==typeof e?(this.url=e,this.style=null):(this.url=null,this.style=e),this._set("sourceNameToSource",r.sourceNameToSource),this._set("primarySource",r.sourceNameToSource[r.primarySourceName]),this._set("styleRepository",new se.A(r.style,!1)),this.read(r.layerDefinition,{origin:"service"}),this.emit("load-style")}_getDefaultAttribution(e){const t=e.match(/^https?:\/\/(?:basemaps|basemapsbeta|basemapsdev)(?:-api)?\.arcgis\.com(\/[^/]+)?\/arcgis\/rest\/services\/([^/]+(\/[^/]+)*)\/vectortileserver/i),r=["OpenBasemap_v2","OpenBasemap_GCS_v2","OpenStreetMap_v2","OpenStreetMap_Daylight_v2","OpenStreetMap_Export_v2","OpenStreetMap_FTS_v2","OpenStreetMap_GCS_v2","World_Basemap","World_Basemap_v2","World_Basemap_Export_v2","World_Basemap_GCS_v2","World_Basemap_WGS84","World_Contours_v2","World_Hillshade_v2"];if(!t)return;const i=t[2]&&t[2].toLowerCase();if(!i)return;const s=t[1]||"";for(const e of r)if(e.toLowerCase().includes(i))return(0,u.S8)(`//static.arcgis.com/attribution/Vector${s}/${e}`)}async _loadStyle(e){return this._loadingTask?.promise??this.loadStyle(null,e)}};(0,i.Cg)([(0,h.MZ)({readOnly:!0})],de.prototype,"attributionDataUrl",null),(0,i.Cg)([(0,h.MZ)({type:["show","hide"]})],de.prototype,"listMode",void 0),(0,i.Cg)([(0,h.MZ)({json:{read:!0,write:!0}})],de.prototype,"blendMode",void 0),(0,i.Cg)([(0,h.MZ)({readOnly:!0,json:{read:!1}})],de.prototype,"capabilities",null),(0,i.Cg)([(0,h.MZ)({readOnly:!0})],de.prototype,"currentStyleInfo",void 0),(0,i.Cg)([(0,h.MZ)({json:{read:!1},readOnly:!0,type:c.A})],de.prototype,"fullExtent",null),(0,i.Cg)([(0,h.MZ)({json:{read:!1},readOnly:!0,type:c.A})],de.prototype,"initialExtent",null),(0,i.Cg)([(0,h.MZ)({type:Boolean,json:{read:!1,write:{enabled:!0,overridePolicy:()=>({enabled:!1})}}})],de.prototype,"isReference",void 0),(0,i.Cg)([(0,h.MZ)({type:["VectorTileLayer"]})],de.prototype,"operationalLayerType",void 0),(0,i.Cg)([(0,h.MZ)({readOnly:!0})],de.prototype,"parsedUrl",null),(0,i.Cg)([(0,h.MZ)({type:String,json:{origins:{"web-scene":{read:!0,write:!0}},read:!1}})],de.prototype,"path",void 0),(0,i.Cg)([(0,h.MZ)({type:Number,json:{write:!1,origins:{"web-map":{write:!1},"web-scene":{write:!1},"portal-item":{write:!1}}}})],de.prototype,"refreshInterval",void 0),(0,i.Cg)([(0,h.MZ)()],de.prototype,"style",void 0),(0,i.Cg)([(0,h.MZ)({readOnly:!0})],de.prototype,"serviceUrl",null),(0,i.Cg)([(0,h.MZ)({type:p.A,readOnly:!0})],de.prototype,"spatialReference",null),(0,i.Cg)([(0,h.MZ)({readOnly:!0})],de.prototype,"styleRepository",void 0),(0,i.Cg)([(0,h.MZ)({readOnly:!0})],de.prototype,"sourceNameToSource",void 0),(0,i.Cg)([(0,h.MZ)({readOnly:!0})],de.prototype,"primarySource",void 0),(0,i.Cg)([(0,h.MZ)({type:String,readOnly:!0,json:{write:{ignoreOrigin:!0},origins:{"web-document":{write:{ignoreOrigin:!0,isRequired:!0}}}}})],de.prototype,"styleUrl",null),(0,i.Cg)([(0,ce.K)(["portal-item","web-document"],"styleUrl")],de.prototype,"writeStyleUrl",null),(0,i.Cg)([(0,h.MZ)({json:{read:!1,origins:{service:{read:!1}}},readOnly:!0,type:C.A})],de.prototype,"tileInfo",null),(0,i.Cg)([(0,h.MZ)()],de.prototype,"tilemapCache",void 0),(0,i.Cg)([(0,pe.w)("service","tilemapCache",["capabilities","tileInfo"])],de.prototype,"readTilemapCache",null),(0,i.Cg)([(0,h.MZ)({json:{read:!1},readOnly:!0,value:"vector-tile"})],de.prototype,"type",void 0),(0,i.Cg)([(0,h.MZ)({json:{origins:{"web-document":{read:{source:"styleUrl"}},"portal-item":{read:{source:"url"}}},write:!1,read:!1}}),(0,h.MZ)(b.OZ)],de.prototype,"url",null),(0,i.Cg)([(0,h.MZ)({readOnly:!0})],de.prototype,"version",void 0),(0,i.Cg)([(0,pe.w)("version",["version","currentVersion"])],de.prototype,"readVersion",null),de=(0,i.Cg)([(0,h.$K)("esri.layers.VectorTileLayer")],de);const ye=de},52136(e,t,r){r.d(t,{p:()=>l});var i=r(5482),s=r(91429);const l=e=>{const t=e;let r=class extends t{get apiKey(){return this._isOverridden("apiKey")?this._get("apiKey"):"portalItem"in this?this.portalItem?.apiKey:null}set apiKey(e){null!=e?this._override("apiKey",e):(this._clearOverride("apiKey"),this.clear("apiKey","user"))}};return(0,i.Cg)([(0,s.MZ)({type:String})],r.prototype,"apiKey",null),r=(0,i.Cg)([(0,s.$K)("esri.layers.mixins.APIKeyMixin")],r),r}},60999(e,t,r){r.d(t,{DZ:()=>y,Ke:()=>d,Tj:()=>h,UT:()=>f,aD:()=>g,jJ:()=>u});var i=r(5482),s=r(69622),l=r(97768),o=r(74887),n=r(10107),a=r(64108);function u(e,t,r){return(0,o.Lx)(e.map((e,i)=>t.apply(r,[e,i])))}async function h(e,t,r){return(await(0,o.Lx)(e.map((e,i)=>t.apply(r,[e,i])))).map(e=>e.value)}function c(e){return{ok:!0,value:e}}function p(e){return{ok:!1,error:e}}async function d(e){if(null==e)return{ok:!1,error:new Error("no promise provided")};try{return c(await e)}catch(e){return p(e)}}async function y(e){try{return c(await e)}catch(e){return(0,o.QP)(e),p(e)}}function f(e,t){return new m(e,t)}let m=class extends s.A{get value(){return null!=(e=this._result)&&!0===e.ok?e.value:null;var e}get error(){return null!=(e=this._result)&&!1===e.ok?e.error:null;var e}get finished(){return null!=this._result}constructor(e,t){super({}),this._result=null,this._abortHandle=null,this.abort=()=>{this._abortController=(0,l.DC)(this._abortController)},this.remove=this.abort,this._abortController=new AbortController;const{signal:r}=this._abortController;this.promise=e(r),this.promise.then(e=>{this._result=c(e),this._cleanup()},e=>{this._result=p(e),this._cleanup()}),this._abortHandle=(0,o.u7)(t,this.abort)}normalizeCtorArgs(){return{}}destroy(){this.abort()}_cleanup(){this._abortHandle=(0,l.xt)(this._abortHandle),this._abortController=null}};(0,i.Cg)([(0,n.MZ)()],m.prototype,"value",null),(0,i.Cg)([(0,n.MZ)()],m.prototype,"error",null),(0,i.Cg)([(0,n.MZ)()],m.prototype,"finished",null),(0,i.Cg)([(0,n.MZ)()],m.prototype,"promise",void 0),(0,i.Cg)([(0,n.MZ)()],m.prototype,"_result",void 0),m=(0,i.Cg)([(0,a.$)("esri.core.asyncUtils.ReactiveTask")],m);class g{constructor(){this._sequence=Promise.resolve()}async acquire(){let e;this._sequence=new Promise(t=>{e=this._sequence.then(()=>t,()=>t)});const t=await e;return{[Symbol.dispose]:t}}async run(e){const t={stack:[],error:void 0,hasError:!1};try{return(0,i.mS)(t,await this.acquire(),!1),await e()}catch(e){t.error=e,t.hasError=!0}finally{(0,i.hk)(t)}}}},66344(e,t,r){r.d(t,{q:()=>n});const i=!!(0,r(44208).A)("esri-tests-disable-gpu-memory-measurements");Symbol.iterator;class s{get size(){return this._size}constructor(e=10485760){this._maxSize=e,this._db=new Map,this._size=0,this._hit=0,this._miss=0,this._users=new Map,this._sizeLimits=new Map}destroy(){this.clearAll(),this._sizeLimits.clear(),this._users.clear(),this._db.clear()}register(e){this._users.set(e.id.slice(0,-1),e)}deregister(e){this.clear(e),this._sizeLimits.delete(e),this._users.delete(e.id.slice(0,-1))}get maxSize(){return this._maxSize}set maxSize(e){this._maxSize=Math.max(e,-1),this._checkSize()}getSize(e,t){const r=this._db.get(e.id+t);return r?.size??0}put(e,t,r,s,o){t=e.id+t;const n=this._db.get(t);if(n&&(this._size-=n.size,e.size-=n.size,this._db.delete(t),n.entry!==r&&this._notifyRemove(t,n.entry,n.size,0)),s>this._maxSize)return void this._notifyRemove(t,r,s,0);if(void 0===r)return void console.warn("Refusing to cache undefined entry ");if(!s||s<0)return i||console.warn(`Refusing to cache entry with size ${s} for key ${t}`),void this._notifyRemove(t,r,0,0);const a=1+Math.max(o,-4)- -3;this._db.set(t,new l(r,s,a)),this._size+=s,e.size+=s,this._checkSize()}updateSize(e,t){t=e.id+t;const r=this._db.get(t);if(!r)return;this._size-=r.size,e.size-=r.size;let i=r.entry.usedMemory;for(;i>this._maxSize;){const e=this._notifyRemove(t,r.entry,i,1);if(!(null!=e&&e>0))return void this._db.delete(t);i=e}r.size=i,this._size+=i,e.size+=i,this._checkSize()}pop(e,t){t=e.id+t;const r=this._db.get(t);if(r)return this._size-=r.size,e.size-=r.size,this._db.delete(t),++this._hit,r.entry;++this._miss}get(e,t){t=e.id+t;const r=this._db.get(t);if(void 0!==r)return this._db.delete(t),r.lives=r.lifetime,this._db.set(t,r),++this._hit,r.entry;++this._miss}peek(e,t){const r=this._db.get(e.id+t);return r?++this._hit:++this._miss,r?.entry}get performanceInfo(){const e={Size:Math.round(this._size/1048576)+"/"+Math.round(this._maxSize/1048576)+"MB","Hit rate":Math.round(100*this._getHitRate())+"%",Entries:this._db.size.toString()},t={},r=new Array;this._db.forEach((e,i)=>{const s=e.lifetime;r[s]=(r[s]||0)+e.size,this._users.forEach(r=>{const{id:s,name:l}=r;if(i.startsWith(s)){const r=t[l]||0;t[l]=r+e.size}})});const i={};this._users.forEach(e=>{const r=e.name;if("hitRate"in e&&"number"==typeof e.hitRate&&!isNaN(e.hitRate)&&e.hitRate>0){const s=t[r]||0;t[r]=s,i[r]=Math.round(100*e.hitRate)+"%"}else i[r]="0%"});const s=Object.keys(t);s.sort((e,r)=>t[r]-t[e]),s.forEach(r=>e[r]=Math.round(t[r]/2**20)+"MB / "+i[r]);for(let t=r.length-1;t>=0;--t){const i=r[t];i&&(e["Priority "+(t+-3-1)]=Math.round(i/this._size*100)+"%")}return e}resetStats(){this._hit=this._miss=0,this._users.forEach(e=>e.resetHitRate())}clear(e){const t=e.id;this._db.forEach((e,r)=>{r.startsWith(t)&&(this._size-=e.size,this._db.delete(r),this._notifyRemove(r,e.entry,e.size,0))}),e.size=0}clearAll(){this._db.forEach((e,t)=>this._notifyRemove(t,e.entry,e.size,0)),this._users.forEach(e=>e.size=0),this._size=0,this._db.clear()}*values(e){for(const[t,r]of this._db)t.startsWith(e.id)&&(yield r.entry)}_getHitRate(){return this._hit/(this._hit+this._miss)}_notifyRemove(e,t,r,i){const s=this._users.get(e.split(o)[0])?.removeFunc,l=s?.(t,i,r);return"number"==typeof l?l:null}_checkSize(){this._sizeLimits.forEach((e,t)=>this._checkSizeLimits(e,t)),this._checkSizeLimits(this.maxSize)}setMaxSize(e,t){null==t||t<=0?this._sizeLimits.delete(e):this._sizeLimits.set(e,t)}_checkSizeLimits(e,t){const r=t??this;if(r.size<=e)return;const i=t?.id;let s=!0;for(;s;){s=!1;for(const[l,n]of this._db)if(0===n.lifetime&&(!i||l.startsWith(i))){const i=t??this._users.get(l.split(o)[0]);if(this._purgeItem(l,n,i),r.size<=.9*e)return;s||=this._db.has(l)}}for(const[s,l]of this._db)if(!i||s.startsWith(i)){const i=t??this._users.get(s.split(o)[0]);if(this._purgeItem(s,l,i),r.size<=.9*e)return}}_purgeItem(e,t,r){if(this._db.delete(e),t.lives<=1){this._size-=t.size,r&&(r.size-=t.size);const i=this._notifyRemove(e,t.entry,t.size,1);null!=i&&i>0&&(this._size+=i,r&&(r.size+=i),t.lives=t.lifetime,t.size=i,this._db.set(e,t))}else--t.lives,this._db.set(e,t)}}new s(0);class l{constructor(e,t,r){this.entry=e,this.size=t,this.lifetime=r,this.lives=r}}const o=":";class n{constructor(e,t){this.removeFunc=t,this._storage=new s,this.id="",this.name="",this.size=0,this._storage.maxSize=e,this._storage.register(this)}destroy(){this._storage.deregister(this),this._storage.destroy(),this._storage=null}put(e,t,r=1){this._storage.put(this,e,t,r,1)}pop(e){return this._storage.pop(this,e)}get(e){return this._storage.get(this,e)}clear(){this._storage.clearAll()}get maxSize(){return this._storage.maxSize}set maxSize(e){this._storage.maxSize=e}resetHitRate(){}}},69208(e,t,r){r.d(t,{d:()=>l});var i=r(5482),s=r(91429);const l=e=>{const t=e;let r=class extends t{constructor(){super(...arguments),this.customParameters=null}};return(0,i.Cg)([(0,s.MZ)({type:Object,json:{write:{overridePolicy:e=>({enabled:!!(e&&Object.keys(e).length>0)})}}})],r.prototype,"customParameters",void 0),r=(0,i.Cg)([(0,s.$K)("esri.layers.mixins.CustomParametersMixin")],r),r}},78553(e,t,r){r.d(t,{D:()=>l,p:()=>s});var i=r(56507);function s(e){const t=(0,i.Vr)(100*(1-e));return Math.max(0,Math.min(t,100))}function l(e){const t=1-e/100;return Math.max(0,Math.min(t,1))}},88788(e,t,r){r.d(t,{m:()=>o,v:()=>l});var i=r(84952),s=r(20655);function l(e,t){return{...n(e,t),readResourcePaths:[]}}function o(e,t,r){const s=(0,i.An)(e.itemUrl);return{...n(e,t),messages:[],writtenProperties:[],blockedRelativeUrls:[],verifyItemRelativeUrls:s?{rootPath:s.path,writtenUrls:[]}:null,resources:r?{toAdd:[],toUpdate:[],toKeep:[],pendingOperations:[]}:null}}function n(e,t){return{origin:t,url:(0,i.An)(e.itemUrl),portal:e.portal||s.A.getDefault(),portalItem:e}}}}]);