// All material copyright Esri, All Rights Reserved, unless otherwise specified. // See https://js.arcgis.com/4.30/esri/copyright.txt for details. //>>built require({cache:{"esri/layers/mixins/ArcGISCachedService":function(){define("exports ../../chunks/tslib.es6 ../../geometry ../../core/accessorSupport/decorators/property ../../core/has ../../core/Logger ../../core/RandomLCG ../../core/accessorSupport/decorators/reader ../../core/accessorSupport/decorators/subclass ../support/TileInfo ../support/TileInfoTilemapCache ../support/TilemapCache ../../geometry/SpatialReference".split(" "),function(k,f,g,r,n,y,q,t,u,C,S,O,A){k.ArcGISCachedService=z=>{z=class extends z{constructor(){super(...arguments); this.copyright=null;this.maxScale=this.minScale=0;this.tilemapCache=this.tileInfo=this.spatialReference=null}destroy(){this.tilemapCache?.destroy?.()}readMinScale(H,L){return null!=L.minLOD&&null!=L.maxLOD?H:0}readMaxScale(H,L){return null!=L.minLOD&&null!=L.maxLOD?H:0}get supportsBlankTile(){return 10.2<=this.version}readTilemapCache(H,L,J){H=L.capabilities?.includes("Tilemap");let {minLOD:E,maxLOD:D,minScale:c,maxScale:d}=L;if(null==E&&null==D&&0!==c&&0!==d){c=c?Math.round(1E4*c)/1E4:Math.round(1E4* L.tileInfo.lods[0].scale)/1E4;d=d?Math.round(1E4*d)/1E4:Math.round(1E4*L.tileInfo.lods[L.tileInfo.lods.length-1].scale)/1E4;for(var b of L.tileInfo.lods){const h=Math.round(1E4*b.scale)/1E4;E=h>=c?b.level:E;D=h>=d?b.level:D}}return H?new O.TilemapCache({layer:this,minLOD:E,maxLOD:D}):L.tileInfo?(b=new C,b.read(L.tileInfo,J),new S(b,E,D)):null}};f.__decorate([r.property({json:{read:{source:"copyrightText"}}})],z.prototype,"copyright",void 0);f.__decorate([r.property()],z.prototype,"minScale",void 0); f.__decorate([t.reader("service","minScale")],z.prototype,"readMinScale",null);f.__decorate([r.property()],z.prototype,"maxScale",void 0);f.__decorate([t.reader("service","maxScale")],z.prototype,"readMaxScale",null);f.__decorate([r.property({type:A})],z.prototype,"spatialReference",void 0);f.__decorate([r.property({readOnly:!0})],z.prototype,"supportsBlankTile",null);f.__decorate([r.property({type:C})],z.prototype,"tileInfo",void 0);f.__decorate([r.property()],z.prototype,"tilemapCache",void 0); f.__decorate([t.reader("service","tilemapCache",["capabilities","tileInfo"])],z.prototype,"readTilemapCache",null);f.__decorate([r.property()],z.prototype,"version",void 0);return z=f.__decorate([u.subclass("esri.layers.mixins.ArcGISCachedService")],z)};Object.defineProperty(k,Symbol.toStringTag,{value:"Module"})})},"esri/layers/support/TileInfo":function(){define("../../chunks/tslib.es6 ../../core/jsonMap ../../core/JSONSupport ../../core/unitUtils ../../core/accessorSupport/decorators/property ../../core/accessorSupport/ensureType ../../core/RandomLCG ../../core/has ../../core/accessorSupport/decorators/reader ../../core/accessorSupport/decorators/subclass ../../core/accessorSupport/decorators/writer ../../geometry/Point ../../geometry/SpatialReference ../../geometry/support/aaBoundingRect ../../geometry/support/spatialReferenceUtils ../../geometry/support/webMercatorUtils ./LOD ./TileKey".split(" "), function(k,f,g,r,n,y,q,t,u,C,S,O,A,z,H,L,J,E){var D;f=new f.JSONMap({PNG:"png",PNG8:"png8",PNG24:"png24",PNG32:"png32",JPEG:"jpg",JPG:"jpg",DIB:"dib",TIFF:"tiff",EMF:"emf",PS:"ps",PDF:"pdf",GIF:"gif",SVG:"svg",SVGZ:"svgz",Mixed:"mixed",MIXED:"mixed",LERC:"lerc",LERC2D:"lerc2d",RAW:"raw",pbf:"pbf"});g=D=class extends g.JSONSupport{static create(c={}){const {resolutionFactor:d=1,scales:b,size:h=256,spatialReference:l=A.WebMercator,numLODs:v=24}=c;if(!H.isValid(l)){c=[];if(b)for(var x=0;x{d.push(h.scale);b[h.level]=h});this._set("scales",d);this._set("lods",c);this._initializeUpsampleLevels()}readSize(c,d){return[d.cols,d.rows]}writeSize(c,d){d.cols=c[0];d.rows=c[1]}zoomToScale(c){const d=this.scales;if(0>=c)return d[0];if(c>=d.length-1)return d[d.length-1];const b=Math.floor(c);return d[b]/(d[b]/d[b+ 1])**(c-b)}scaleToZoom(c){const d=this.scales,b=d.length-1;let h=0;for(;hc&&vArray.isArray(c)?c:"number"===typeof c?[c,c]:[256,256]})],g.prototype,"size",void 0);k.__decorate([u.reader("size",["rows","cols"])],g.prototype,"readSize",null);k.__decorate([S.writer("size",{cols:{type:y.Integer},rows:{type:y.Integer}})],g.prototype,"writeSize",null);k.__decorate([n.property({type:A,json:{write:!0}})],g.prototype,"spatialReference", void 0);g=D=k.__decorate([C.subclass("esri.layers.support.TileInfo")],g);(function(c){c=c.ExtrapolateOptions||(c.ExtrapolateOptions={});c[c.NONE=0]="NONE";c[c.POWER_OF_TWO=1]="POWER_OF_TWO"})(g||={});return g})},"esri/layers/support/LOD":function(){define("../../chunks/tslib.es6 ../../core/JSONSupport ../../core/accessorSupport/decorators/property ../../core/accessorSupport/ensureType ../../core/RandomLCG ../../core/has ../../core/accessorSupport/decorators/subclass".split(" "),function(k,f,g,r,n, y,q){var t;f=t=class extends f.JSONSupport{constructor(u){super(u);this.cols=null;this.level=0;this.origin=this.levelValue=null;this.resolution=0;this.rows=null;this.scale=0}clone(){return new t({cols:this.cols,level:this.level,levelValue:this.levelValue,resolution:this.resolution,rows:this.rows,scale:this.scale})}};k.__decorate([g.property({json:{write:!0,origins:{"web-document":{read:!1,write:!1},"portal-item":{read:!1,write:!1}}}})],f.prototype,"cols",void 0);k.__decorate([g.property({type:r.Integer, json:{write:!0}})],f.prototype,"level",void 0);k.__decorate([g.property({type:String,json:{write:!0}})],f.prototype,"levelValue",void 0);k.__decorate([g.property({json:{write:!0,origins:{"web-document":{read:!1,write:!1},"portal-item":{read:!1,write:!1}}}})],f.prototype,"origin",void 0);k.__decorate([g.property({type:Number,json:{write:!0}})],f.prototype,"resolution",void 0);k.__decorate([g.property({json:{write:!0,origins:{"web-document":{read:!1,write:!1},"portal-item":{read:!1,write:!1}}}})],f.prototype, "rows",void 0);k.__decorate([g.property({type:Number,json:{write:!0}})],f.prototype,"scale",void 0);return f=t=k.__decorate([q.subclass("esri.layers.support.LOD")],f)})},"esri/layers/support/TileKey":function(){define(["exports"],function(k){class f{constructor(g,r,n,y,q){this.id=g;this.level=r;this.row=n;this.col=y;this.extent=q}}k.TileKey=f;Object.defineProperty(k,Symbol.toStringTag,{value:"Module"})})},"esri/layers/support/TileInfoTilemapCache":function(){define(["../../core/Error","../../core/promiseUtils"], function(k,f){class g{constructor(r,n=0,y=r.lods[r.lods.length-1].level){this.tileInfo=r;this.minLOD=n;this.maxLOD=y;r.lodAt(n)||(this.minLOD=r.lods[0].level);r.lodAt(y)||(this.maxLOD=r.lods[r.lods.length-1].level)}get effectiveMinLOD(){return this.minLOD??this.tileInfo.lods[0].level}get effectiveMaxLOD(){return this.maxLOD??this.tileInfo.lods[this.tileInfo.lods.length-1].level}getAvailability(r,n,y){const q=this.tileInfo?.lodAt(r);return!q||rthis.maxLOD?"unavailable":q.cols&&q.rows? y>=q.cols[0]&&y<=q.cols[1]&&n>=q.rows[0]&&n<=q.rows[1]?"unknown":"unavailable":"unknown"}async fetchAvailability(r,n,y,q){await f.waitTick(q);q=this.getAvailability(r,n,y);if("unavailable"===q)throw new k("tile-map:tile-unavailable","Tile is not available",{level:r,row:n,col:y});return q}async fetchAvailabilityUpsample(r,n,y,q,t){await f.waitTick(t);q.level=r;q.row=n;q.col=y;const u=this.tileInfo;u.updateTileInfo(q);return this.fetchAvailability(r,n,y,t).catch(C=>{if(f.isAbortError(C))throw C;if(u.upsampleTile(q))return this.fetchAvailabilityUpsample(q.level, q.row,q.col,q,t);throw C;})}}return g})},"esri/layers/support/TilemapCache":function(){define("exports ../../chunks/tslib.es6 ../../request ../../core/Accessor ../../core/ByteSizeUnit ../../core/Error ../../core/handleUtils ../../core/has ../../core/LRUCache ../../core/PooledArray ../../core/promiseUtils ../../core/reactiveUtils ../../core/scheduling ../../core/urlUtils ../../core/accessorSupport/decorators/property ../../core/Logger ../../core/RandomLCG ../../core/accessorSupport/decorators/subclass ./TileKey ./Tilemap".split(" "), function(k,f,g,r,n,y,q,t,u,C,S,O,A,z,H,L,J,E,D,c){var d;k.TilemapCache=d=class extends r{constructor(b){super(b);this._pendingTilemapRequests={};this.request=g;this.size=32;this._prefetchingEnabled=!0}initialize(){this._tilemapCache=new u.LRUCache(2*n.ByteSizeUnit.MEGABYTES);this.addHandles(O.watch(()=>{const {layer:b}=this;return[b?.parsedUrl,b?.tileServers,b?.apiKey,b?.customParameters]},()=>this._initializeTilemapDefinition(),O.initial))}get effectiveMinLOD(){return this.minLOD??this.layer.tileInfo.lods[0].level}get effectiveMaxLOD(){return this.maxLOD?? this.layer.tileInfo.lods[this.layer.tileInfo.lods.length-1].level}getAvailability(b,h,l){return!this.layer.tileInfo.lodAt(b)||bthis.effectiveMaxLOD?"unavailable":(b=this._tilemapFromCache(b,h,l,this._tmpTilemapDefinition))?b.getAvailability(h,l):"unknown"}fetchAvailability(b,h,l,v){return!this.layer.tileInfo.lodAt(b)||bthis.effectiveMaxLOD?Promise.reject(new y("tile-map:tile-unavailable","Tile is not available",{level:b,row:h,col:l})):this._fetchTilemap(b, h,l,v).catch(x=>x).then(x=>{if(x instanceof c.Tilemap){x=x.getAvailability(h,l);if("unavailable"===x)throw new y("tile-map:tile-unavailable","Tile is not available",{level:b,row:h,col:l});return x}if(S.isAbortError(x))throw x;return"unknown"})}fetchAvailabilityUpsample(b,h,l,v,x){v.level=b;v.row=h;v.col=l;const p=this.layer.tileInfo;p.updateTileInfo(v);const M=this.fetchAvailability(b,h,l,x).catch(F=>{if(S.isAbortError(F))throw F;if(p.upsampleTile(v))return this.fetchAvailabilityUpsample(v.level, v.row,v.col,v,x);throw F;});this._fetchAvailabilityUpsamplePrefetch(v.id,b,h,l,x,M);return M}async _fetchAvailabilityUpsamplePrefetch(b,h,l,v,x,p){if(this._prefetchingEnabled&&null!=b){var M=`prefetch-${b}`;if(!this.hasHandles(M)){var F=new AbortController;p.then(()=>F.abort(),()=>F.abort());var Q=!1;p=q.makeHandle(()=>{Q||(Q=!0,F.abort())});this.addHandles(p,M);await A.waitTicks(10,F.signal).catch(()=>{});Q||(Q=!0,this.removeHandles(M));if(!S.isAborted(F))for(b=new D.TileKey(b,h,l,v),x={...x,signal:F.signal}, h=this.layer.tileInfo,l=0;d._prefetches.length{d._prefetches.removeUnordered(B)};B.then(v,v)}}}}_fetchTilemap(b,h,l,v){if(!this.layer.tileInfo.lodAt(b)||bthis.effectiveMaxLOD)return Promise.reject(new y("tilemap-cache:level-unavailable",`Level ${b} is unavailable in the service`));const x=this._tmpTilemapDefinition;if(b=this._tilemapFromCache(b,h,l,x))return Promise.resolve(b); const p=v?.signal;v={...v,signal:null};return new Promise((M,F)=>{S.onAbort(p,()=>F(S.createAbortError()));const Q=c.tilemapDefinitionId(x);let B=this._pendingTilemapRequests[Q];if(!B){B=c.Tilemap.fromDefinition(x,v).then(K=>{this._tilemapCache.put(Q,K,K.byteSize);return K});const T=()=>{delete this._pendingTilemapRequests[Q]};this._pendingTilemapRequests[Q]=B;B.then(T,T)}B.then(M,F)})}_initializeTilemapDefinition(){if(this.layer.parsedUrl){var {parsedUrl:b,apiKey:h,customParameters:l}=this.layer; this._tilemapCache.clear();this._tmpTilemapDefinition={service:{url:b.path,query:z.objectToQuery({...b.query,...l,token:h??b.query?.token}),tileServers:this.layer.tileServers,request:this.request},width:this.size,height:this.size,level:0,row:0,col:0}}}_tilemapFromCache(b,h,l,v){v.level=b;v.row=h-h%this.size;v.col=l-l%this.size;b=c.tilemapDefinitionId(v);return this._tilemapCache.get(b)}get test(){}};k.TilemapCache._maxPrefetch=4;k.TilemapCache._prefetches=new C({initialSize:d._maxPrefetch});f.__decorate([H.property({constructOnly:!0})], k.TilemapCache.prototype,"layer",void 0);f.__decorate([H.property({constructOnly:!0})],k.TilemapCache.prototype,"minLOD",void 0);f.__decorate([H.property({constructOnly:!0})],k.TilemapCache.prototype,"maxLOD",void 0);f.__decorate([H.property({constructOnly:!0})],k.TilemapCache.prototype,"request",void 0);f.__decorate([H.property({constructOnly:!0})],k.TilemapCache.prototype,"size",void 0);k.TilemapCache=d=f.__decorate([E.subclass("esri.layers.support.TilemapCache")],k.TilemapCache);Object.defineProperty(k, Symbol.toStringTag,{value:"Module"})})},"esri/core/ByteSizeUnit":function(){define(["exports"],function(k){k.ByteSizeUnit=void 0;var f=k.ByteSizeUnit||(k.ByteSizeUnit={});f[f.KILOBYTES=1024]="KILOBYTES";f[f.MEGABYTES=1048576]="MEGABYTES";f[f.GIGABYTES=1073741824]="GIGABYTES";Object.defineProperty(k,Symbol.toStringTag,{value:"Module"})})},"esri/layers/support/Tilemap":function(){define("exports ../../request ../../core/Error ../../core/lang ../../core/typedArrayUtil ../../geometry/support/UintArray".split(" "), function(k,f,g,r,n,y){function q(u){if(u.service.tileServers?.length){var C=u.service.tileServers;C=`${C&&C.length?C[u.row%C.length]:u.service.url}/tilemap/${u.level}/${u.row}/${u.col}/${u.width}/${u.height}`}else C=`${u.service.url}/tilemap/${u.level}/${u.row}/${u.col}/${u.width}/${u.height}`;(u=u.service.query)&&(C=`${C}?${u}`);return C}class t{constructor(u){if(!u?.location)throw new g("tilemap:missing-location","Location missing from tilemap response");if(!1===u.valid)throw new g("tilemap:invalid", "Tilemap response was marked as invalid");if(!u.data)throw new g("tilemap:missing-data","Data missing from tilemap response");if(!Array.isArray(u.data))throw new g("tilemap:data-mismatch","Data must be an array of numbers");if(u.data.length!==u.location.width*u.location.height)throw new g("tilemap:data-mismatch","Number of data items does not match width/height of tilemap");const {location:C,data:S}=u;this.location=Object.freeze(r.clone(C));let O=u=!0;const A=y.newUintArray(Math.ceil(this.location.width* this.location.height/32));let z=0;for(let H=0;H>5;const S=this._availability;return 0> C||C>S.length?"unknown":S[C]&1<J.data).catch(J=>{if(422===J?.details?.httpStatus)return{location:{top:O,left:A,width:z,height:H},valid:!0,data:Array(z*H).fill(0)};throw J;}).then(J=>{if(J.location&&(J.location.top!==O||J.location.left!==A||J.location.width!==z||J.location.height!==H))throw new g("tilemap:location-mismatch", "Tilemap response for different location than requested",{response:J,definition:{top:O,left:A,width:z,height:H}});return t.fromJSON(J)})}static fromJSON(u){return Object.freeze(new t(u))}}k.Tilemap=t;k.tilemapDefinitionId=function(u){return`${u.level}/${u.row}/${u.col}/${u.width}/${u.height}`};Object.defineProperty(k,Symbol.toStringTag,{value:"Module"})})},"esri/geometry/support/UintArray":function(){define(["exports","../../core/typedArrayUtil"],function(k,f){k.newUintArray=function(g,r=!1){return g<= f.nativeArrayMaxSize?r?Array(g).fill(0):Array(g):new Uint32Array(g)};k.uintSubArray=function(g,r,n){return Array.isArray(g)?g.slice(r,r+n):g.subarray(r,r+n)};Object.defineProperty(k,Symbol.toStringTag,{value:"Module"})})},"esri/layers/mixins/ArcGISMapService":function(){define("exports ../../chunks/tslib.es6 ../../request ../../core/MapUtils ../../core/promiseUtils ../../core/urlUtils ../../core/Version ../../core/accessorSupport/decorators/property ../../core/has ../../core/Logger ../../core/RandomLCG ../../core/accessorSupport/decorators/reader ../../core/accessorSupport/decorators/subclass ../../core/accessorSupport/PropertyOrigin ../../geometry/Extent ../../geometry/SpatialReference ../support/arcgisLayerUrl ../support/commonProperties ../../portal/support/portalItemUtils".split(" "), function(k,f,g,r,n,y,q,t,u,C,S,O,A,z,H,L,J,E,D){k.ArcGISMapService=c=>{c=class extends c{constructor(){super(...arguments);this.capabilities=void 0;this.fullExtent=this.copyright=null;this.legendEnabled=!0;this.spatialReference=null;this.version=void 0;this._allLayersAndTablesMap=null}readCapabilities(d,b){var h=b.capabilities&&b.capabilities.split(",").map(K=>K.toLowerCase().trim());if(!h)return{operations:{supportsExportMap:!1,supportsExportTiles:!1,supportsIdentify:!1,supportsQuery:!1,supportsTileMap:!1}, exportMap:null,exportTiles:null};var l=this.type;d="tile"!==l&&!!b.supportsDynamicLayers;const v=h.includes("query"),x=h.includes("map"),p=!!b.exportTilesAllowed,M=h.includes("tilemap");h=h.includes("data");const F="tile"!==l&&(!b.tileInfo||d),Q="tile"!==l&&(!b.tileInfo||d);l="tile"!==l;var B=b.cimVersion&&q.Version.parse(b.cimVersion);const T=B?.since(1,4)??!1;B=B?.since(2,0)??!1;return{operations:{supportsExportMap:x,supportsExportTiles:p,supportsIdentify:v,supportsQuery:h,supportsTileMap:M},exportMap:x? {supportsArcadeExpressionForLabeling:T,supportsSublayersChanges:l,supportsDynamicLayers:d,supportsSublayerVisibility:F,supportsSublayerDefinitionExpression:Q,supportsCIMSymbols:B}:null,exportTiles:p?{maxExportTilesCount:+b.maxExportTilesCount}:null}}readVersion(d,b){(d=b.currentVersion)||(d=b.hasOwnProperty("capabilities")||b.hasOwnProperty("tables")?10:b.hasOwnProperty("supportedImageFormatTypes")?9.31:9.3);return d}async fetchRelatedService(d){var b=this.portalItem;if(!b||!D.isHostedLayer(b))return null; this._relatedFeatureServicePromise||(this._relatedFeatureServicePromise=b.fetchRelatedItems({relationshipType:"Service2Service",direction:"reverse"},d).then(h=>h.find(l=>"Feature Service"===l.type)??null,()=>null));b=await this._relatedFeatureServicePromise;n.throwIfAborted(d);return b?{itemId:b.id,url:b.url}:null}async fetchSublayerInfo(d,b){const {source:h}=d;if(this?.portalItem&&"tile"===this.type&&"map-layer"===h?.type&&D.isHostedLayer(this.portalItem)&&d.originIdOf("url")z.OriginId.SERVICE)try{const x=await this._fetchAllLayersAndTablesFromService(l),p=J.parse(l)?.sublayer??h.mapLayerId;v=x.get(p)}catch{}else{d=d.id;"map-layer"===h?.type&&(d=h.mapLayerId);try{v=(await this.fetchAllLayersAndTables(b)).get(d)}catch{}}return v}async fetchAllLayersAndTables(d){return this._fetchAllLayersAndTablesFromService(this.parsedUrl?.path, d)}async _fetchAllLayersAndTablesFromService(d,b){await this.load(b);this._allLayersAndTablesMap||(this._allLayersAndTablesMap=new Map);const h=J.parse(d);d=await r.getOrCreateMapValue(this._allLayersAndTablesMap,h?.url.path,()=>g(y.join(h?.url.path,"/layers"),{responseType:"json",query:{f:"json",...this.customParameters,token:this.apiKey}}).then(l=>{const v=new Map,{layers:x,tables:p}=l.data;l=[...(x??[]),...(p??[])];for(const M of l)v.set(M.id,M);return{result:v}},l=>({error:l})));n.throwIfAborted(b); if("result"in d)return d.result;throw d.error;}};f.__decorate([t.property({readOnly:!0})],c.prototype,"capabilities",void 0);f.__decorate([O.reader("service","capabilities",["capabilities","exportTilesAllowed","maxExportTilesCount","supportsDynamicLayers","tileInfo"])],c.prototype,"readCapabilities",null);f.__decorate([t.property({json:{read:{source:"copyrightText"}}})],c.prototype,"copyright",void 0);f.__decorate([t.property({type:H})],c.prototype,"fullExtent",void 0);f.__decorate([t.property(E.id)], c.prototype,"id",void 0);f.__decorate([t.property({type:Boolean,json:{origins:{service:{read:{enabled:!1}}},read:{source:"showLegend"},write:{target:"showLegend"}}})],c.prototype,"legendEnabled",void 0);f.__decorate([t.property(E.popupEnabled)],c.prototype,"popupEnabled",void 0);f.__decorate([t.property({type:L})],c.prototype,"spatialReference",void 0);f.__decorate([t.property({readOnly:!0})],c.prototype,"version",void 0);f.__decorate([O.reader("version",["currentVersion","capabilities","tables", "supportedImageFormatTypes"])],c.prototype,"readVersion",null);return c=f.__decorate([A.subclass("esri.layers.mixins.ArcGISMapService")],c)};Object.defineProperty(k,Symbol.toStringTag,{value:"Module"})})},"esri/layers/mixins/SublayersOwner":function(){define("exports ../../chunks/tslib.es6 ../../core/Collection ../../core/CollectionFlattener ../../core/Error ../../core/Logger ../../core/reactiveUtils ../../core/accessorSupport/decorators/property ../../core/has ../../core/RandomLCG ../../core/accessorSupport/utils ../../core/accessorSupport/decorators/subclass ../../core/accessorSupport/PropertyOrigin ../support/Sublayer ../support/sublayerUtils".split(" "), function(k,f,g,r,n,y,q,t,u,C,S,O,A,z,H){function L(D,c){const d=[],b={};if(!D)return d;D.forEach(h=>{const l=new z;l.read(h,c);b[l.id]=l;null!=h.parentLayerId&&-1!==h.parentLayerId?(h=b[h.parentLayerId],h.sublayers||(h.sublayers=[]),h.sublayers.unshift(l)):d.unshift(l)});return d}function J(D,c){D&&D.forEach(d=>{c(d);d.sublayers&&d.sublayers.length&&J(d.sublayers,c)})}const E=g.ofType(z);k.SublayersOwner=D=>{D=class extends D{constructor(...c){super(...c);this.allSublayers=new r({getCollections:()=> [this.sublayers],getChildrenFunction(d){return d.sublayers}});this.sublayersSourceJSON={[A.OriginId.SERVICE]:{},[A.OriginId.PORTAL_ITEM]:{},[A.OriginId.WEB_SCENE]:{},[A.OriginId.WEB_MAP]:{}};this.subtables=null;this.addHandles([q.watch(()=>this.sublayers,(d,b)=>this._handleSublayersChange(d,b),q.sync),q.watch(()=>this.subtables,(d,b)=>this._handleSublayersChange(d,b),q.sync)])}destroy(){this.allSublayers.destroy()}readSublayers(c,d){if(d&&c){var {sublayersSourceJSON:b}=this,h=A.nameToId(d.origin); if(!(hA.OriginId.SERVICE))){this._set("serviceSublayers",this.createSublayersForOrigin("service").sublayers);var {sublayers:l,origin:v}=this.createSublayersForOrigin("web-document");c=S.getProperties(this);c.setDefaultOrigin(v);this._set("sublayers",new E(l));c.setDefaultOrigin("user")}}}findSublayerById(c){return this.allSublayers.find(d=>d.id===c)}createServiceSublayers(){return this.createSublayersForOrigin("service").sublayers}createSublayersForOrigin(c){const d= "web-document"===c?A.nameToId("web-map"):A.nameToId(c);let b=A.OriginId.SERVICE;c=this.sublayersSourceJSON[A.OriginId.SERVICE].layers;let h=this.sublayersSourceJSON[A.OriginId.SERVICE].context,l=null;var v=[A.OriginId.PORTAL_ITEM,A.OriginId.WEB_SCENE,A.OriginId.WEB_MAP].filter(B=>B<=d);for(var x of v)v=this.sublayersSourceJSON[x],H.isSublayerOverhaul(v.layers)&&(b=x,c=v.layers,h=v.context,v.visibleLayers&&(l={visibleLayers:v.visibleLayers,context:v.context}));x=[A.OriginId.PORTAL_ITEM,A.OriginId.WEB_SCENE, A.OriginId.WEB_MAP].filter(B=>B>b&&B<=d);let p=null;for(var M of x){const {layers:B,visibleLayers:T,context:K}=this.sublayersSourceJSON[M];B&&(p={layers:B,context:K});T&&(l={visibleLayers:T,context:K})}M=L(c,h);const F=new Map,Q=new Set;if(p)for(const B of p.layers)F.set(B.id,B);if(l?.visibleLayers)for(const B of l.visibleLayers)Q.add(B);J(M,B=>{p&&B.read(F.get(B.id),p.context);l&&B.read({defaultVisibility:Q.has(B.id)},l.context)});return{origin:A.idToName(b),sublayers:new E({items:M})}}read(c,d){super.read(c, d);this.readSublayers(c,d)}_handleSublayersChange(c,d){d&&(d.forEach(b=>{b.parent=null;b.layer=null}),this.removeHandles("sublayers-owner"));c&&(c.forEach(b=>{b.parent=this;b.layer=this}),this.addHandles([c.on("after-add",({item:b})=>{b.parent=this;b.layer=this}),c.on("after-remove",({item:b})=>{b.parent=null;b.layer=null})],"sublayers-owner"),"tile"===this.type&&this.addHandles(c.on("before-changes",b=>{y.getLogger("esri.layers.TileLayer").error(new n("tilelayer:sublayers-non-modifiable","ISublayer can't be added, moved, or removed from the layer's sublayers", {layer:this}));b.preventDefault()}),"sublayers-owner"))}};f.__decorate([t.property({readOnly:!0})],D.prototype,"allSublayers",void 0);f.__decorate([t.property({readOnly:!0,type:g.ofType(z)})],D.prototype,"serviceSublayers",void 0);f.__decorate([t.property({value:null,type:E,json:{read:!1,write:{allowNull:!0,ignoreOrigin:!0}}})],D.prototype,"sublayers",void 0);f.__decorate([t.property({readOnly:!0})],D.prototype,"sublayersSourceJSON",void 0);f.__decorate([t.property({type:E,json:{read:{source:"tables"}}})], D.prototype,"subtables",void 0);return D=f.__decorate([O.subclass("esri.layers.mixins.SublayersOwner")],D)};k.forEachSublayer=J;Object.defineProperty(k,Symbol.toStringTag,{value:"Module"})})},"esri/layers/support/Sublayer":function(){define("require ../../chunks/tslib.es6 ../../geometry ../../PopupTemplate ../../renderers/ClassBreaksRenderer ../../renderers/DictionaryRenderer ../../renderers/DotDensityRenderer ../../renderers/HeatmapRenderer ../../renderers/PieChartRenderer ../../renderers/Renderer ../../renderers/SimpleRenderer ../../renderers/UniqueValueRenderer ../../renderers/support/jsonUtils ../../renderers/support/types ../../request ../../symbols ../../core/Collection ../../core/Error ../../core/has ../../core/Identifiable ../../core/lang ../../core/Loadable ../../core/Logger ../../core/MultiOriginJSONSupport ../../core/sql ../../core/urlUtils ../../core/accessorSupport/decorators/property ../../core/accessorSupport/decorators/cast ../../core/accessorSupport/decorators/reader ../../core/accessorSupport/decorators/subclass ../../core/accessorSupport/decorators/writer ../../core/accessorSupport/ensureType ../../core/accessorSupport/PropertyOrigin ../../core/accessorSupport/utils ../graphics/sources/support/QueryTask ./featureLayerUtils ./FeatureType ./Field ./FieldsIndex ./fieldUtils ./LabelClass ./labelingInfo ./LayerFloorInfo ./Relationship ./serviceCapabilitiesUtils ./source/DataLayerSource ./source/MapLayerSource ../../rest/utils ../../rest/support/AttachmentQuery ../../rest/support/Query ../../support/popupUtils ../../geometry/Extent ../../geometry/SpatialReference ../../geometry/support/typeUtils".split(" "), function(k,f,g,r,n,y,q,t,u,C,S,O,A,z,H,L,J,E,D,c,d,b,h,l,v,x,p,M,F,Q,B,T,K,Z,w,G,N,P,U,ca,X,ma,na,oa,pa,ka,da,qa,ra,sa,ta,ua,va,ea){function fa(a,e,m){a=this.originIdOf(e)>=K.nameToId(m.origin);return{ignoreOrigin:!0,allowNull:a,enabled:m?"map-image"===m.layer?.type&&(m.writeSublayerStructure||a):!1}}function ha(a,e,m){return{enabled:m?"tile"===m.layer?.type&&(m.origin&&this.originIdOf(e)>=K.nameToId(m.origin)||this._isOverridden(e)):!1}}function W(a,e,m){return{ignoreOrigin:!0,enabled:m&&m.writeSublayerStructure|| !1}}function aa(a,e,m){return{ignoreOrigin:!0,enabled:m?m.writeSublayerStructure||this.originIdOf(e)>=K.nameToId(m.origin):!1}}var ba;let wa=0;const xa=new Set("layer parent loaded loadStatus loadError loadWarnings".split(" "));g=ba=class extends l.MultiOriginJSONMixin(c.IdentifiableMixin(b)){constructor(a){super(a);this.capabilities=void 0;this.maxScaleRange={minScale:0,maxScale:0};this.globalIdField=this.geometryType=this.fullExtent=this.fields=null;this.isTable=!1;this.legendEnabled=!0;this.parent= this.objectIdField=null;this.popupEnabled=!0;this.typeIdField=this.title=this.spatialReference=this.sourceJSON=this.relationships=this.popupTemplate=null;this.type="sublayer";this._lastParsedUrl=this.types=null}async load(a){this.addResolvingPromise((async()=>{const {layer:e,url:m}=this;if(!e&&!m)throw new E("sublayer:missing-layer","Sublayer can't be loaded without being part of a layer",{sublayer:this});const I=e?await e.fetchSublayerInfo(this,a):(await H(m,{responseType:"json",query:{f:"json"}, ...a})).data;I&&(this.sourceJSON=I,this.read({layerDefinition:I},{origin:"service",layer:e,url:qa.parseUrl(m)}))})());return this}readCapabilities(a,e){e=e.layerDefinition||e;const {operations:{supportsQuery:m,supportsQueryAttachments:I},query:{supportsFormatPBF:R,supportsOrderBy:V,supportsPagination:Y},data:{supportsAttachment:ia},queryRelated:ja}=pa.getFeatureLayerCapabilities(e,this.url);return{exportMap:{supportsModification:!!e.canModifyLayer},operations:{supportsQuery:m,supportsQueryAttachments:I}, data:{supportsAttachment:ia},query:{supportsFormatPBF:R,supportsOrderBy:V,supportsPagination:Y},queryRelated:ja}}get defaultPopupTemplate(){return this.createPopupTemplate()}set definitionExpression(a){this._setAndNotifyLayer("definitionExpression",a)}get effectiveScaleRange(){const {minScale:a,maxScale:e}=this;return{minScale:a,maxScale:e}}readMaxScaleRange(a,e){e=e.layerDefinition||e;return{minScale:e.minScale??0,maxScale:e.maxScale??0}}get fieldsIndex(){return new U(this.fields||[])}set floorInfo(a){this._setAndNotifyLayer("floorInfo", a)}readGlobalIdFieldFromService(a,e){e=e.layerDefinition||e;if(e.globalIdField)return e.globalIdField;if(e.fields)for(const m of e.fields)if("esriFieldTypeGlobalID"===m.type)return m.name}get id(){const a=this._get("id");return null==a?wa++:a}set id(a){this._get("id")!==a&&(!1===this.layer?.capabilities?.exportMap?.supportsDynamicLayers?this._logLockedError("id","capability not available 'layer.capabilities.exportMap.supportsDynamicLayers'"):this._set("id",a))}readIsTable(a,e){return"Table"===e.type}set labelingInfo(a){this._setAndNotifyLayer("labelingInfo", a)}writeLabelingInfo(a,e,m,I){a&&a.length&&(e.layerDefinition={drawingInfo:{labelingInfo:a.map(R=>R.write({},I))}})}set labelsVisible(a){this._setAndNotifyLayer("labelsVisible",a)}set layer(a){this._set("layer",a);this.sublayers?.forEach(e=>e.layer=a)}set listMode(a){this._set("listMode",a)}set minScale(a){this._setAndNotifyLayer("minScale",a)}readMinScale(a,e){return e.minScale||e.layerDefinition?.minScale||0}set maxScale(a){this._setAndNotifyLayer("maxScale",a)}readMaxScale(a,e){return e.maxScale|| e.layerDefinition?.maxScale||0}readObjectIdFieldFromService(a,e){e=e.layerDefinition||e;return e.objectIdField?e.objectIdField:e.fields?.find(m=>"esriFieldTypeOID"===m.type)?.name}set opacity(a){this._setAndNotifyLayer("opacity",a)}readOpacity(a,e){({layerDefinition:a}=e);return 1-.01*(a?.transparency??a?.drawingInfo?.transparency??0)}writeOpacity(a,e,m,I){e.layerDefinition={drawingInfo:{transparency:100-100*a}}}writeParent(a,e){e.parentLayerId=this.parent&&this.parent!==this.layer?T.ensureInteger(this.parent.id): -1}get queryTask(){if(!this.layer)return null;const {capabilities:a,fieldsIndex:e,layer:m,url:I}=this,{spatialReference:R}=m,V="gdbVersion"in m?m.gdbVersion:void 0,Y=D("featurelayer-pbf")&&a?.query.supportsFormatPBF;return new w({fieldsIndex:e,gdbVersion:V,pbfSupported:Y,queryAttachmentsSupported:a?.operations?.supportsQueryAttachments??!1,sourceSpatialReference:R,url:I})}set renderer(a){ca.fixRendererFields(a,this.fieldsIndex);if(a)for(const e of a.getSymbols())if(L.isSymbol3D(e)){h.getLogger(this).warn("Sublayer renderer should use 2D symbols"); break}this._setAndNotifyLayer("renderer",a)}get source(){return this._get("source")||new da.MapLayerSource({mapLayerId:this.id})}set source(a){this._setAndNotifyLayer("source",a)}set sublayers(a){this._handleSublayersChange(a,this._get("sublayers"));this._set("sublayers",a)}castSublayers(a){return T.ensureType(J.ofType(ba),a)}writeSublayers(a,e,m){this.sublayers?.length&&(e[m]=this.sublayers.map(I=>I.id).toArray().reverse())}readTitle(a,e){return e.layerDefinition?.name??e.name}readTypeIdField(a, e){e=e.layerDefinition||e;let m=e.typeIdField;m&&e.fields&&(m=m.toLowerCase(),a=e.fields.find(I=>I.name.toLowerCase()===m))&&(m=a.name);return m}get url(){const a=this.layer?.parsedUrl??this._lastParsedUrl;var e=this.source;if(!a)return null;this._lastParsedUrl=a;if("map-layer"===e?.type)return`${a.path}/${e.mapLayerId}`;e={layer:JSON.stringify({source:this.source})};return`${a.path}/dynamicLayer?${x.objectToQuery(e)}`}set url(a){this._overrideIfSome("url",a)}set visible(a){this._setAndNotifyLayer("visible", a)}writeVisible(a,e,m,I){e[m]=this.getAtOrigin("defaultVisibility","service")||a}clone(){const {store:a}=Z.getProperties(this),e=new ba;Z.getProperties(e).store=a.clone(xa);this.commitProperty("url");e._lastParsedUrl=this._lastParsedUrl;return e}createPopupTemplate(a){return ta.createPopupTemplate(this,a)}createQuery(){return new sa({returnGeometry:!0,where:this.definitionExpression||"1\x3d1"})}async createFeatureLayer(){if(this.hasOwnProperty("sublayers"))return null;var a=(await new Promise((I, R)=>k(["../FeatureLayer"],V=>I(Object.freeze(Object.defineProperty({__proto__:null,default:V},Symbol.toStringTag,{value:"Module"}))),R))).default;const {layer:e,url:m}=this;if(m&&this.originIdOf("url")>K.OriginId.SERVICE)a=new a({url:m});else if(e?.parsedUrl){const I=e.parsedUrl;a=new a({url:I.path});I&&this.source&&("map-layer"===this.source.type?a.layerId=this.source.mapLayerId:a.dynamicDataSource=this.source)}else throw new E("createFeatureLayer:missing-information","Cannot create a FeatureLayer without a url or a parent layer"); null!=e?.refreshInterval&&(a.refreshInterval=e.refreshInterval);this.definitionExpression&&(a.definitionExpression=this.definitionExpression);this.floorInfo&&(a.floorInfo=d.clone(this.floorInfo));this.originIdOf("labelingInfo")>K.OriginId.SERVICE&&(a.labelingInfo=d.clone(this.labelingInfo));this.originIdOf("labelsVisible")>K.OriginId.DEFAULTS&&(a.labelsVisible=this.labelsVisible);this.originIdOf("legendEnabled")>K.OriginId.DEFAULTS&&(a.legendEnabled=this.legendEnabled);this.originIdOf("visible")> K.OriginId.DEFAULTS&&(a.visible=this.visible);this.originIdOf("minScale")>K.OriginId.DEFAULTS&&(a.minScale=this.minScale);this.originIdOf("maxScale")>K.OriginId.DEFAULTS&&(a.maxScale=this.maxScale);this.originIdOf("opacity")>K.OriginId.DEFAULTS&&(a.opacity=this.opacity);this.originIdOf("popupTemplate")>K.OriginId.DEFAULTS&&(a.popupTemplate=d.clone(this.popupTemplate));this.originIdOf("renderer")>K.OriginId.SERVICE&&(a.renderer=d.clone(this.renderer));"data-layer"===this.source?.type&&(a.dynamicDataSource= this.source.clone());this.originIdOf("title")>K.OriginId.DEFAULTS&&(a.title=this.title);"map-image"===e?.type&&e.originIdOf("customParameters")>K.OriginId.DEFAULTS&&(a.customParameters=e.customParameters);"tile"===e?.type&&e.originIdOf("customParameters")>K.OriginId.DEFAULTS&&(a.customParameters=e.customParameters);return a}getField(a){return this.fieldsIndex.get(a)}getFeatureType(a){return G.getFeatureType(this.types,this.typeIdField,a)}getFieldDomain(a,e){return(e=this.getFeatureType(e?.feature))&& (e=e.domains&&e.domains[a])&&"inherited"!==e.type?e:this._getLayerDomain(a)}async queryAttachments(a,e){await this.load();a=ra.from(a);const m=this.capabilities;if(!m?.data?.supportsAttachment)throw new E("queryAttachments:not-supported","this layer doesn't support attachments");const {attachmentTypes:I,objectIds:R,globalIds:V,num:Y,size:ia,start:ja,where:la}=a;if(!m?.operations?.supportsQueryAttachments&&(0{I[R]=this.originIdOf(R);return I},{});if(Object.keys(m).some(I=>m[I]>K.OriginId.SERVICE)){a=e.drawingInfo={};m.renderer>K.OriginId.SERVICE&&(a.renderer=this.renderer?this.renderer.toJSON():null);m.labelsVisible>K.OriginId.SERVICE&&(a.showLabels=this.labelsVisible);if(this.labelsVisible&&m.labelingInfo>K.OriginId.SERVICE)if(this.labelingInfo){!this.loaded&& this.labelingInfo?.some(R=>!R.labelPlacement)&&h.getLogger(this).warnOnce(`A Sublayer (title: ${this.title}, id: ${this.id}) has an undefined 'labelPlacement' `+"and so labels cannot be displayed. Either define a valid 'labelPlacement' or call Sublayer.load() to use a default value based on geometry type.",{sublayer:this});let I=this.labelingInfo;null!=this.geometryType&&(I=ma.validateLabelingInfo(this.labelingInfo,ea.featureGeometryTypeKebabDictionary.toJSON(this.geometryType)));a.showLabels=!0; a.labelingInfo=I.filter(R=>R.labelPlacement).map(R=>R.toJSON({origin:"service",layer:this.layer}))}else a.showLabels=!1;m.opacity>K.OriginId.SERVICE&&(a.transparency=100-100*this.opacity);this._assignDefaultSymbolColors(a.renderer)}return e}_assignDefaultSymbolColors(a){this._forEachSimpleMarkerSymbols(a,e=>{e.color||"esriSMSX"!==e.style&&"esriSMSCross"!==e.style||(e.color=e.outline?.color?e.outline.color:[0,0,0,0])})}_forEachSimpleMarkerSymbols(a,e){if(a){const m=("uniqueValueInfos"in a?a.uniqueValueInfos: "classBreakInfos"in a?a.classBreakInfos:null)??[];for(const I of m)"esriSMS"===I.symbol?.type&&e(I.symbol);"symbol"in a&&"esriSMS"===a.symbol?.type&&e(a.symbol);"defaultSymbol"in a&&"esriSMS"===a.defaultSymbol?.type&&e(a.defaultSymbol)}}_setAndNotifyLayer(a,e){const m=this.layer,I=this._get(a);let R,V;switch(a){case "definitionExpression":case "floorInfo":R="supportsSublayerDefinitionExpression";break;case "minScale":case "maxScale":case "visible":R="supportsSublayerVisibility";break;case "labelingInfo":case "labelsVisible":case "opacity":case "renderer":case "source":R= "supportsDynamicLayers",V="supportsModification"}const Y=Z.getProperties(this).getDefaultOrigin();if("service"!==Y){if(R&&!1===this.layer?.capabilities?.exportMap?.[R]){this._logLockedError(a,`capability not available 'layer.capabilities.exportMap.${R}'`);return}if(V&&!1===this.capabilities?.exportMap[V]){this._logLockedError(a,`capability not available 'capabilities.exportMap.${V}'`);return}}"source"===a&&"not-loaded"!==this.loadStatus?this._logLockedError(a,"'source' can't be changed after calling sublayer.load()"): (this._set(a,e),"service"!==Y&&I!==e&&m&&m.emit&&m.emit("sublayer-update",{propertyName:a,target:this}))}_handleSublayersChange(a,e){e&&(e.forEach(m=>{m.parent=null;m.layer=null}),this.removeAllHandles());a&&(a.forEach(m=>{m.parent=this;m.layer=this.layer}),this.addHandles([a.on("after-add",({item:m})=>{m.parent=this;m.layer=this.layer}),a.on("after-remove",({item:m})=>{m.parent=null;m.layer=null}),a.on("before-changes",m=>{(this.layer?.capabilities?.exportMap?.supportsSublayersChanges??!0)||(h.getLogger(this).error(new E("sublayer:sublayers-non-modifiable", "Sublayer can't be added, moved, or removed from the layer's sublayers",{sublayer:this,layer:this.layer})),m.preventDefault())})]))}_logLockedError(a,e){const {layer:m,declaredClass:I}=this;h.getLogger(I).error(new E("sublayer:locked",`Property '${String(a)}' can't be changed on Sublayer from the layer '${m?.id}'`,{reason:e,sublayer:this,layer:m}))}_getLayerDomain(a){return this.fieldsIndex.get(a)?.domain??null}};g.test={isMapImageLayerOverridePolicy:a=>a===W||a===fa,isTileImageLayerOverridePolicy:a=> a===ha};f.__decorate([p.property({readOnly:!0})],g.prototype,"capabilities",void 0);f.__decorate([F.reader("service","capabilities",["layerDefinition.canModifyLayer","layerDefinition.capabilities"])],g.prototype,"readCapabilities",null);f.__decorate([p.property()],g.prototype,"defaultPopupTemplate",null);f.__decorate([p.property({type:String,value:null,json:{name:"layerDefinition.definitionExpression",write:{allowNull:!0,overridePolicy:fa}}})],g.prototype,"definitionExpression",null);f.__decorate([p.property({readOnly:!0})], g.prototype,"effectiveScaleRange",null);f.__decorate([F.reader("service","maxScaleRange",["minScale","maxScale"])],g.prototype,"readMaxScaleRange",null);f.__decorate([p.property({type:[P],json:{origins:{service:{read:{source:"layerDefinition.fields"}}}}})],g.prototype,"fields",void 0);f.__decorate([p.property({readOnly:!0})],g.prototype,"fieldsIndex",null);f.__decorate([p.property({type:na,value:null,json:{name:"layerDefinition.floorInfo",read:{source:"layerDefinition.floorInfo"},write:{target:"layerDefinition.floorInfo", overridePolicy:fa},origins:{"web-scene":{read:!1,write:!1}}}})],g.prototype,"floorInfo",null);f.__decorate([p.property({type:ua,json:{read:{source:"layerDefinition.extent"}}})],g.prototype,"fullExtent",void 0);f.__decorate([p.property({type:ea.featureGeometryTypeKebabDictionary.apiValues,json:{origins:{service:{name:"layerDefinition.geometryType",read:{reader:ea.featureGeometryTypeKebabDictionary.read}}}}})],g.prototype,"geometryType",void 0);f.__decorate([p.property({type:String})],g.prototype,"globalIdField", void 0);f.__decorate([F.reader("service","globalIdField",["layerDefinition.globalIdField","layerDefinition.fields"])],g.prototype,"readGlobalIdFieldFromService",null);f.__decorate([p.property({type:T.Integer,json:{write:{ignoreOrigin:!0}}})],g.prototype,"id",null);f.__decorate([p.property({readOnly:!0})],g.prototype,"isTable",void 0);f.__decorate([F.reader("service","isTable",["type"])],g.prototype,"readIsTable",null);f.__decorate([p.property({value:null,type:[X],json:{read:{source:"layerDefinition.drawingInfo.labelingInfo"}, write:{target:"layerDefinition.drawingInfo.labelingInfo",overridePolicy:W}}})],g.prototype,"labelingInfo",null);f.__decorate([B.writer("labelingInfo")],g.prototype,"writeLabelingInfo",null);f.__decorate([p.property({type:Boolean,value:!0,json:{read:{source:"layerDefinition.drawingInfo.showLabels"},write:{target:"layerDefinition.drawingInfo.showLabels",overridePolicy:W}}})],g.prototype,"labelsVisible",null);f.__decorate([p.property({value:null})],g.prototype,"layer",null);f.__decorate([p.property({type:String, json:{write:{overridePolicy:ha}}})],g.prototype,"layerItemId",void 0);f.__decorate([p.property({type:Boolean,value:!0,json:{origins:{service:{read:{enabled:!1}}},read:{source:"showLegend"},write:{target:"showLegend",overridePolicy:aa}}})],g.prototype,"legendEnabled",void 0);f.__decorate([p.property({type:["show","hide","hide-children"],value:"show",json:{read:!1,write:!1,origins:{"web-scene":{read:!0,write:!0}}}})],g.prototype,"listMode",null);f.__decorate([p.property({type:Number,value:0,json:{write:{overridePolicy:W}}})], g.prototype,"minScale",null);f.__decorate([F.reader("minScale",["minScale","layerDefinition.minScale"])],g.prototype,"readMinScale",null);f.__decorate([p.property({type:Number,value:0,json:{write:{overridePolicy:W}}})],g.prototype,"maxScale",null);f.__decorate([F.reader("maxScale",["maxScale","layerDefinition.maxScale"])],g.prototype,"readMaxScale",null);f.__decorate([p.property()],g.prototype,"objectIdField",void 0);f.__decorate([F.reader("service","objectIdField",["layerDefinition.objectIdField", "layerDefinition.fields"])],g.prototype,"readObjectIdFieldFromService",null);f.__decorate([p.property({type:Number,value:1,json:{write:{target:"layerDefinition.drawingInfo.transparency",overridePolicy:W}}})],g.prototype,"opacity",null);f.__decorate([F.reader("opacity",["layerDefinition.drawingInfo.transparency","layerDefinition.transparency"])],g.prototype,"readOpacity",null);f.__decorate([B.writer("opacity")],g.prototype,"writeOpacity",null);f.__decorate([p.property({json:{type:T.Integer,write:{target:"parentLayerId", writerEnsuresNonNull:!0,overridePolicy:W}}})],g.prototype,"parent",void 0);f.__decorate([B.writer("parent")],g.prototype,"writeParent",null);f.__decorate([p.property({type:Boolean,value:!0,json:{read:{source:"disablePopup",reader(a,e){return!e.disablePopup}},write:{target:"disablePopup",overridePolicy:aa,writer(a,e,m){e[m]=!a}}}})],g.prototype,"popupEnabled",void 0);f.__decorate([p.property({type:r,json:{read:{source:"popupInfo"},write:{target:"popupInfo",overridePolicy:aa}}})],g.prototype,"popupTemplate", void 0);f.__decorate([p.property({readOnly:!0})],g.prototype,"queryTask",null);f.__decorate([p.property({type:[oa],readOnly:!0,json:{origins:{service:{read:{source:"layerDefinition.relationships"}}}}})],g.prototype,"relationships",void 0);f.__decorate([p.property({types:z.rendererTypes,value:null,json:{name:"layerDefinition.drawingInfo.renderer",write:{overridePolicy:W},origins:{"web-scene":{types:z.webSceneRendererTypes,name:"layerDefinition.drawingInfo.renderer",write:{overridePolicy:W}}}}})],g.prototype, "renderer",null);f.__decorate([p.property({types:{key:"type",base:null,typeMap:{"data-layer":ka.DataLayerSource,"map-layer":da.MapLayerSource}},cast(a){if(a){if("mapLayerId"in a)return T.ensureClass(da.MapLayerSource,a);if("dataSource"in a)return T.ensureClass(ka.DataLayerSource,a)}return a},json:{name:"layerDefinition.source",write:{overridePolicy:W}}})],g.prototype,"source",null);f.__decorate([p.property()],g.prototype,"sourceJSON",void 0);f.__decorate([p.property({type:va,json:{origins:{service:{read:{source:"layerDefinition.extent.spatialReference"}}}}})], g.prototype,"spatialReference",void 0);f.__decorate([p.property({value:null,json:{type:[T.Integer],write:{target:"subLayerIds",allowNull:!0,overridePolicy:W}}})],g.prototype,"sublayers",null);f.__decorate([M.cast("sublayers")],g.prototype,"castSublayers",null);f.__decorate([B.writer("sublayers")],g.prototype,"writeSublayers",null);f.__decorate([p.property({type:String,json:{name:"name",write:{overridePolicy:aa}}})],g.prototype,"title",void 0);f.__decorate([F.reader("service","title",["name","layerDefinition.name"])], g.prototype,"readTitle",null);f.__decorate([p.property({type:String})],g.prototype,"typeIdField",void 0);f.__decorate([p.property({json:{read:!1},readOnly:!0,value:"sublayer"})],g.prototype,"type",void 0);f.__decorate([F.reader("typeIdField",["layerDefinition.typeIdField"])],g.prototype,"readTypeIdField",null);f.__decorate([p.property({type:[N],json:{origins:{service:{read:{source:"layerDefinition.types"}}}}})],g.prototype,"types",void 0);f.__decorate([p.property({type:String,json:{name:"layerUrl", write:{overridePolicy:ha}}})],g.prototype,"url",null);f.__decorate([p.property({type:Boolean,value:!0,json:{read:{source:"defaultVisibility"},write:{target:"defaultVisibility",overridePolicy:W}}})],g.prototype,"visible",null);f.__decorate([B.writer("visible")],g.prototype,"writeVisible",null);return g=ba=f.__decorate([Q.subclass("esri.layers.support.Sublayer")],g)})},"esri/layers/support/sublayerUtils":function(){define(["exports","../../core/accessorSupport/PropertyOrigin"],function(k,f){function g(r, n){if(!r?.length||null==n)return!0;n=n.slice().reverse().flatten(({sublayers:t})=>t&&t.toArray().reverse()).map(t=>t.id).toArray();if(r.length>n.length)return!1;let y=0;const q=n.length;for(const {id:t}of r){for(;y=q)return!1}return!0}k.isExportDynamic=function(r,n,y){return r.some(q=>{var t=q.source;t=!t||"map-layer"===t.type&&t.mapLayerId===q.id&&(null==t.gdbVersion||t.gdbVersion===y);q.commitProperty("renderer");q.commitProperty("labelingInfo");q.commitProperty("opacity"); q.commitProperty("labelsVisible");return!t||q.originIdOf("renderer")>f.OriginId.SERVICE||q.originIdOf("labelingInfo")>f.OriginId.SERVICE||q.originIdOf("opacity")>f.OriginId.SERVICE||q.originIdOf("labelsVisible")>f.OriginId.SERVICE})?!0:!g(r,n)};k.isSublayerOverhaul=function(r){return!!r&&r.some(n=>null!=n.minScale||null!=n.layerDefinition?.minScale)};k.shouldWriteSublayerStructure=function(r,n,y){return n.flatten(({sublayers:q})=>q).length!==r.length||r.some(q=>q.originIdOf("minScale")>y||q.originIdOf("maxScale")> y||q.originIdOf("renderer")>y||q.originIdOf("labelingInfo")>y||q.originIdOf("opacity")>y||q.originIdOf("labelsVisible")>y||q.originIdOf("source")>y)?!0:!g(r,n)};Object.defineProperty(k,Symbol.toStringTag,{value:"Module"})})},"esri/layers/support/imageBitmapUtils":function(){define(["exports","../../core/Error","../../core/promiseUtils"],function(k,f,g){k.createBitmap=async function(r,n,y){let q;try{q=await createImageBitmap(r)}catch(t){throw new f("request:server",`Unable to load ${n}`,{url:n,error:t}); }g.throwIfAborted(y);return q};k.createTileBitmap=async function(r,n,y,q,t){let u;try{u=await createImageBitmap(r)}catch(C){throw new f("request:server",`Unable to load tile ${n}/${y}/${q}`,{error:C,level:n,row:y,col:q});}g.throwIfAborted(t);return u};Object.defineProperty(k,Symbol.toStringTag,{value:"Module"})})},"*noref":1}}); define("../chunks/tslib.es6 ../request ../core/Error ../core/loadAll ../core/MultiOriginJSONSupport ../core/promiseUtils ../core/urlUtils ../core/accessorSupport/decorators/property ../core/accessorSupport/decorators/cast ../core/RandomLCG ../core/has ../core/accessorSupport/decorators/reader ../core/accessorSupport/decorators/subclass ../core/accessorSupport/decorators/writer ../geometry/SpatialReference ./Layer ./mixins/APIKeyMixin ./mixins/ArcGISCachedService ./mixins/ArcGISMapService ./mixins/ArcGISService ./mixins/BlendLayer ./mixins/CustomParametersMixin ./mixins/OperationalLayer ./mixins/PortalLayer ./mixins/RefreshableLayer ./mixins/ScaleRangeLayer ./mixins/SublayersOwner ./support/arcgisLayerUrl ./support/commonProperties ./support/imageBitmapUtils ./support/Sublayer".split(" "),function(k, f,g,r,n,y,q,t,u,C,S,O,A,z,H,L,J,E,D,c,d,b,h,l,v,x,p,M,F,Q,B){var T;const K="Canvas/World_Dark_Gray_Base Canvas/World_Dark_Gray_Reference Canvas/World_Light_Gray_Base Canvas/World_Light_Gray_Reference Elevation/World_Hillshade Elevation/World_Hillshade_Dark Ocean/World_Ocean_Base Ocean/World_Ocean_Reference Ocean_Basemap Reference/World_Boundaries_and_Places Reference/World_Boundaries_and_Places_Alternate Reference/World_Transportation World_Imagery World_Street_Map World_Topo_Map".split(" ");n=T= class extends d.BlendLayer(x.ScaleRangeLayer(p.SublayersOwner(E.ArcGISCachedService(D.ArcGISMapService(h.OperationalLayer(l.PortalLayer(c.ArcGISService(n.MultiOriginJSONMixin(v.RefreshableLayer(J.APIKeyMixin(b.CustomParametersMixin(L)))))))))))){constructor(...w){super(...w);this.listMode="show";this.isReference=null;this.operationalLayerType="ArcGISTiledMapServiceLayer";this.resampling=!0;this.sublayers=this.path=this.spatialReference=this.sourceJSON=null;this.type="tile";this.url=null}normalizeCtorArgs(w, G){return"string"===typeof w?{url:w,...G}:w}load(w){const G=null!=w?w.signal:null;this.addResolvingPromise(this.loadFromPortal({supportedTypes:["Map Service"]},w).catch(y.throwIfAbortError).then(()=>this._fetchService(G)));return Promise.resolve(this)}get attributionDataUrl(){const w=this.parsedUrl?.path.toLowerCase();return w?this._getDefaultAttribution(this._getMapName(w)):null}readSpatialReference(w,G){return(w=w||G.tileInfo?.spatialReference)&&H.fromJSON(w)}writeSublayers(w,G,N,P){if(this.loaded&& w){w=w.slice().reverse().flatten(({sublayers:X})=>X&&X.toArray().reverse()).toArray();var U=[],ca={writeSublayerStructure:!1,...P};w.forEach(X=>{X=X.write({},ca);U.push(X)});U.some(X=>1q.urlToObject(G).path):null}fetchTile(w,G,N,P={}){({signal:P}=P);w=this.getTileUrl(w,G,N);return f(w,{responseType:"image",signal:P,query:{...this.refreshParameters}}).then(U=> U.data)}async fetchImageBitmapTile(w,G,N,P={}){const {signal:U}=P;if(this.fetchTile!==T.prototype.fetchTile)return P=await this.fetchTile(w,G,N,P),Q.createTileBitmap(P,w,G,N,U);P=this.getTileUrl(w,G,N);({data:P}=await f(P,{responseType:"blob",signal:U,query:{...this.refreshParameters}}));return Q.createTileBitmap(P,w,G,N,U)}getTileUrl(w,G,N){const P=q.objectToQuery({...this.parsedUrl?.query,blankTile:!this.capabilities.operations.supportsTileMap&&this.supportsBlankTile?!1:null,...this.customParameters, token:this.apiKey}),U=this.tileServers;return`${U&&U.length?U[G%U.length]:this.parsedUrl?.path}/tile/${w}/${G}/${N}${P?"?"+P:""}`}loadAll(){return r.loadAll(this,w=>{w(this.allSublayers)})}_fetchService(w){return(new Promise((G,N)=>{if(this.sourceJSON){if(null!=this.sourceJSON.bandCount&&null!=this.sourceJSON.pixelSizeX)throw new g("tile-layer:unsupported-url","use ImageryTileLayer to open a tiled image service");G({data:this.sourceJSON})}else{if(!this.parsedUrl)throw new g("tile-layer:undefined-url", "layer's url is not defined");var P=M.parse(this.parsedUrl.path);if(null!=P&&"ImageServer"===P.serverType)throw new g("tile-layer:unsupported-url","use ImageryTileLayer to open a tiled image service");f(this.parsedUrl.path,{query:{f:"json",...this.parsedUrl.query,...this.customParameters,token:this.apiKey},responseType:"json",signal:w}).then(G,N)}})).then(G=>{let N=this.url;G.ssl&&(N=this.url=N.replace(/^http:/i,"https:"));this.sourceJSON=G.data;this.read(G.data,{origin:"service",url:this.parsedUrl}); if(10.1===this.version&&!M.isHostedAgolService(N))return this._fetchServerVersion(N,w).then(P=>{this.read({currentVersion:P})}).catch(()=>{})})}_fetchServerVersion(w,G){if(!M.isArcGISUrl(w))return Promise.reject();w=w.replace(/(.*\/rest)\/.*/i,"$1")+"/info";return f(w,{query:{f:"json",...this.customParameters,token:this.apiKey},responseType:"json",signal:G}).then(N=>{if(N.data&&N.data.currentVersion)return N.data.currentVersion;throw new g("tile-layer:version-not-available");})}_getMapName(w){return(w= w.match(/^(?:https?:)?\/\/(server\.arcgisonline\.com|services\.arcgisonline\.com|ibasemaps-api\.arcgis\.com)\/arcgis\/rest\/services\/([^/]+(\/[^/]+)*)\/mapserver/i))?w[2]:void 0}_getDefaultAttribution(w){if(null==w)return null;let G;w=w.toLowerCase();for(let N=0,P=K.length;N({enabled:!1})}}})],n.prototype,"isReference",void 0);k.__decorate([t.property({readOnly:!0,type:["ArcGISTiledMapServiceLayer"]})],n.prototype,"operationalLayerType",void 0);k.__decorate([t.property({type:Boolean})],n.prototype,"resampling",void 0);k.__decorate([t.property()],n.prototype,"sourceJSON",void 0);k.__decorate([t.property({type:H})],n.prototype,"spatialReference",void 0);k.__decorate([O.reader("spatialReference", ["spatialReference","tileInfo"])],n.prototype,"readSpatialReference",null);k.__decorate([t.property({type:String,json:{origins:{"web-scene":{read:!0,write:!0}},read:!1}})],n.prototype,"path",void 0);k.__decorate([t.property({readOnly:!0})],n.prototype,"sublayers",void 0);k.__decorate([z.writer("sublayers",{layers:{type:[B]}})],n.prototype,"writeSublayers",null);k.__decorate([t.property({json:{read:!1,write:!1}})],n.prototype,"popupEnabled",void 0);k.__decorate([t.property()],n.prototype,"tileServers", null);k.__decorate([u.cast("tileServers")],n.prototype,"castTileServers",null);k.__decorate([t.property({readOnly:!0,json:{read:!1}})],n.prototype,"type",void 0);k.__decorate([t.property(F.url)],n.prototype,"url",void 0);n=T=k.__decorate([A.subclass("esri.layers.TileLayer")],n);const Z=Symbol("default-fetch-tile");n.prototype.fetchTile[Z]=!0;return n});