UNPKG

@arcgis/core

Version:

ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API

1 lines • 31.1 kB
"use strict";(self.webpackChunkRemoteClient=self.webpackChunkRemoteClient||[]).push([[561,7705,9397],{5359(e,t,i){i.d(t,{H:()=>r,Z:()=>s});const r=Symbol("isImageryTileGraphicOrigin");function s(e){return!!e&&r in e}},18768(e,t,i){i.d(t,{b:()=>a});var r=i(5482),s=i(53966),n=i(91429),o=i(60694);const a=e=>{const t=e;let i=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,r.Cg)([(0,n.MZ)()],i.prototype,"title",null),(0,r.Cg)([(0,n.MZ)({type:String})],i.prototype,"url",null),i=(0,r.Cg)([(0,n.$K)("esri.layers.mixins.ArcGISService")],i),i}},24212(e,t,i){i.d(t,{$7:()=>a,B:()=>o,XF:()=>u,tW:()=>l,w7:()=>n});var r=i(56512),s=i(86211);function n(e,t){return function(e,t){return t?.mode?t.mode:function(e){return e?c:h}(e).mode}(null==e||(e.hasZ??!1),t)}function o(e,t,i){return i&&i.mode!==t?`${e} only support ${t} elevation mode`:null}function a(e,t,i){return i?.mode===t?`${e} do not support ${t} elevation mode`:null}function l(e,t){return null!=t?.featureExpressionInfo&&"0"!==t.featureExpressionInfo.expression?`${e} do not support featureExpressionInfo`:null}function u(e,t){t&&e.warn(".elevationInfo=",t)}i(16271),(0,r.B)((e,t,i)=>{if(!e)return 0;if("decimal-degrees"===t)return 0;const r="unknown"!==t&&t?t:"meters",n=(0,s.mq)(i);return n?(0,s.oU)(e,r,n):0});const c={mode:"absolute-height",offset:0},h={mode:"on-the-ground",offset:null}},25943(e,t,i){i.d(t,{d:()=>C});var r,s=i(5482),n=i(11254),o=i(69622),a=i(49186),l=i(36563),u=(i(44208),i(66344)),c=i(15142),h=i(74887),p=i(36708),d=i(76030),f=i(84952),m=i(91429),g=i(72802),y=i(4718),v=i(69397),w=i(34275);class b{constructor(e){!function(e){if(!e?.location)throw new a.A("tilemap:missing-location","Location missing from tilemap response");if(!1===e.valid)throw new a.A("tilemap:invalid","Tilemap response was marked as invalid");if(!e.data)throw new a.A("tilemap:missing-data","Data missing from tilemap response");if(!Array.isArray(e.data))throw new a.A("tilemap:data-mismatch","Data must be an array of numbers");if(e.data.length!==e.location.width*e.location.height)throw new a.A("tilemap:data-mismatch","Number of data items does not match width/height of tilemap")}(e);const{location:t,data:i}=e;this.location=Object.freeze((0,y.o8)(t));const r=this.location.width,s=this.location.height;let n=!0,o=!0;const l=function(e,t=!1){return e<=w.y9?t?new Array(e).fill(0):new Array(e):new Uint32Array(e)}(Math.ceil(r*s/32));let u=0;for(let e=0;e<i.length;e++){const t=e%32;i[e]?(o=!1,l[u]|=1<<t):n=!1,31===t&&++u}o?(this._availability="unavailable",this.byteSize=40):n?(this._availability="available",this.byteSize=40):(this._availability=l,this.byteSize=40+(0,v.Qf)(l))}getAvailability(e,t){if("unavailable"===this._availability||"available"===this._availability)return this._availability;const i=(e-this.location.top)*this.location.width+(t-this.location.left),r=i%32,s=i>>5,n=this._availability;return s<0||s>n.length?"unknown":n[s]&1<<r?"available":"unavailable"}static fromDefinition(e,t){const i=e.service.request||n.A,{row:r,col:s,width:o,height:l}=e,u={query:{f:"json"}};return t=t?{...u,...t}:u,i(function(e){let t;if(e.service.tileServers?.length){const i=e.service.tileServers;t=`${i&&i.length?i[e.row%i.length]:e.service.url}/tilemap/${e.level}/${e.row}/${e.col}/${e.width}/${e.height}`}else t=`${e.service.url}/tilemap/${e.level}/${e.row}/${e.col}/${e.width}/${e.height}`;const i=e.service.query;return i&&(t=`${t}?${i}`),t}(e),t).then(e=>e.data).catch(e=>{if(422===e?.details?.httpStatus)return{location:{top:r,left:s,width:o,height:l},valid:!0,data:new Array(o*l).fill(0)};throw e}).then(e=>{if(e.location&&(e.location.top!==r||e.location.left!==s||e.location.width!==o||e.location.height!==l))throw new a.A("tilemap:location-mismatch","Tilemap response for different location than requested",{response:e,definition:{top:r,left:s,width:o,height:l}});return b.fromJSON(e)})}static fromJSON(e){return Object.freeze(new b(e))}}function A(e){return`${e.level}/${e.row}/${e.col}/${e.width}/${e.height}`}function _(e,t,i){return new a.A("tile-map:tile-unavailable","Tile is not available",{level:e,row:t,col:i})}let C=class extends o.A{static{r=this}constructor(e){super(e),this._pendingTilemapRequests={},this.request=n.A,this.size=32,this._prefetchingEnabled=!0}initialize(){this._tilemapCache=new u.q(2097152),this.addHandles((0,p.wB)(()=>{const{layer:e}=this;return[e?.parsedUrl,e?.tileServers,e?.apiKey,e?.customParameters]},()=>this._initializeTilemapDefinition(),p.Vh))}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(e,t,i){if(!this.layer.tileInfo.lodAt(e)||e<this.effectiveMinLOD||e>this.effectiveMaxLOD)return"unavailable";const r=this._tilemapFromCache(e,t,i,this._tmpTilemapDefinition);return r?r.getAvailability(t,i):"unknown"}fetchAvailability(e,t,i,r){return!this.layer.tileInfo.lodAt(e)||e<this.effectiveMinLOD||e>this.effectiveMaxLOD?Promise.reject(_(e,t,i)):this._fetchTilemap(e,t,i,r).catch(e=>e).then(r=>{if(r instanceof b){const s=r.getAvailability(t,i);if("unavailable"===s)throw _(e,t,i);return s}if((0,h.zf)(r))throw r;return"unknown"})}fetchAvailabilityUpsample(e,t,i,r,s){r.level=e,r.row=t,r.col=i;const n=this.layer.tileInfo;n.updateTileInfo(r);const o=this.fetchAvailability(e,t,i,s).catch(e=>{if((0,h.zf)(e))throw e;if(n.upsampleTile(r))return this.fetchAvailabilityUpsample(r.level,r.row,r.col,r,s);throw e});return this._fetchAvailabilityUpsamplePrefetch(e,t,i,s,o),o}async _fetchAvailabilityUpsamplePrefetch(e,t,i,s,n){if(!this._prefetchingEnabled)return;const o=`prefetch-${e}-${t}-${i}`;if(this.hasHandles(o))return;const a=new AbortController;n.then(()=>a.abort(),()=>a.abort());let u=!1;const c=(0,l.hA)(()=>{u||(u=!0,a.abort())});if(this.addHandles(c,o),await(0,d.md)(10,a.signal).catch(()=>{}),u||(u=!0,this.removeHandles(o)),(0,h.G4)(a))return;const p=new g.U(e,t,i),f={...s,signal:a.signal},m=this.layer.tileInfo;for(let e=0;r._prefetches.length<r._maxPrefetch&&m.upsampleTile(p);++e){const e=this.fetchAvailability(p.level,p.row,p.col,f);r._prefetches.push(e);const t=()=>{r._prefetches.removeUnordered(e)};e.then(t,t)}}static{this._maxPrefetch=4}static{this._prefetches=new c.A({initialSize:r._maxPrefetch})}static cleanupTilemapCache(){this._prefetches.prune()}_fetchTilemap(e,t,i,r){if(!this.layer.tileInfo.lodAt(e)||e<this.effectiveMinLOD||e>this.effectiveMaxLOD)return Promise.reject(new a.A("tilemap-cache:level-unavailable",`Level ${e} is unavailable in the service`));const s=this._tmpTilemapDefinition,n=this._tilemapFromCache(e,t,i,s);if(n)return Promise.resolve(n);const o=r?.signal;return r={...r,signal:null},new Promise((e,t)=>{(0,h.u7)(o,()=>t((0,h.NK)()));const i=A(s);let n=this._pendingTilemapRequests[i];if(!n){n=b.fromDefinition(s,r).then(e=>(this._tilemapCache.put(i,e,e.byteSize),e));const e=()=>{delete this._pendingTilemapRequests[i]};this._pendingTilemapRequests[i]=n,n.then(e,e)}n.then(e,t)})}_initializeTilemapDefinition(){if(!this.layer.parsedUrl)return;const{parsedUrl:e,apiKey:t,customParameters:i}=this.layer;this._tilemapCache.clear(),this._tmpTilemapDefinition={service:{url:e.path,query:(0,f.x0)({...e.query,...i,token:t??e.query?.token}),tileServers:this.layer.tileServers,request:this.request},width:this.size,height:this.size,level:0,row:0,col:0}}_tilemapFromCache(e,t,i,r){r.level=e,r.row=t-t%this.size,r.col=i-i%this.size;const s=A(r);return this._tilemapCache.get(s)}get test(){}};(0,s.Cg)([(0,m.MZ)({constructOnly:!0})],C.prototype,"layer",void 0),(0,s.Cg)([(0,m.MZ)({constructOnly:!0})],C.prototype,"minLOD",void 0),(0,s.Cg)([(0,m.MZ)({constructOnly:!0})],C.prototype,"maxLOD",void 0),(0,s.Cg)([(0,m.MZ)({constructOnly:!0})],C.prototype,"request",void 0),(0,s.Cg)([(0,m.MZ)({constructOnly:!0})],C.prototype,"size",void 0),C=r=(0,s.Cg)([(0,m.$K)("esri.layers.support.TilemapCache")],C)},56512(e,t,i){function r(e){let t,i,r=[],s=!1;return function(...n){return s&&t===this&&function(e,t){if(e.length!==t.length)return!1;for(let i=0;i<e.length;++i)if(e[i]!==t[i])return!1;return!0}(n,r)||(i=e.apply(this,n),t=this,r=n,s=!0),i}}i.d(t,{B:()=>r})},56551(e,t,i){i.d(t,{H:()=>h});var r=i(5482),s=i(91429),n=i(69540),o=i(25482),a=i(56507),l=i(94359),u=i(93223);let c=class extends((0,n.OU)(o.o)){constructor(e){super(e),this.name=void 0,this.method="none",this.value=void 0,this.bandIds=void 0,this.renderer=void 0}};(0,r.Cg)([(0,s.MZ)({type:String,json:{write:{isRequired:!0}}})],c.prototype,"name",void 0),(0,r.Cg)([(0,s.MZ)({type:["raster-function-template","variable","none"],json:{write:{isRequired:!0}}}),(0,u.e)({rasterFunctionTemplate:"raster-function-template",variable:"variable",none:"none"})],c.prototype,"method",void 0),(0,r.Cg)([(0,s.MZ)({type:String,json:{write:{isRequired:!0}}})],c.prototype,"value",void 0),(0,r.Cg)([(0,s.MZ)({type:[a.jz],json:{write:{isRequired:!0}}})],c.prototype,"bandIds",void 0),(0,r.Cg)([(0,s.MZ)({types:l.uy,json:{write:!0,origins:{"web-scene":{types:l.Gj,write:{overridePolicy:e=>({enabled:e&&"vector-field"!==e.type})}}}}})],c.prototype,"renderer",void 0),c=(0,r.Cg)([(0,s.$K)("esri.renderers.support.RasterPresetRenderer")],c);const h=e=>{const t=e;let i=class extends t{constructor(){super(...arguments),this.activePresetRendererName=null,this.presetRenderers=null}};return(0,r.Cg)([(0,s.MZ)({type:String,json:{name:"layerDefinition.activePresetRendererName",write:{allowNull:!0}}})],i.prototype,"activePresetRendererName",void 0),(0,r.Cg)([(0,s.MZ)({type:[c],json:{name:"layerDefinition.presetRenderers",write:!0}})],i.prototype,"presetRenderers",void 0),i=(0,r.Cg)([(0,s.$K)("esri.layers.mixins.RasterPresetRendererMixin")],i),i}},69397(e,t,i){i.d(t,{Qf:()=>l,Qh:()=>o,RS:()=>s,Ul:()=>d,lM:()=>n,qK:()=>c});var r=i(34275);const s=16;function n(e){if(!e)return 0;let t=c;for(const i in e)e.hasOwnProperty(i)&&(t+=a(e[i],!1));return t}function o(e){if(!e)return 0;if("number"==typeof e[0])return l(e);if(Array.isArray(e))return function(e){const t=e.length;if(0===t||"number"==typeof e[0])return u(e,8);let i=h;for(let r=0;r<t;r++)i+=a(e[r]);return i}(e);let t=c;for(const i in e)e.hasOwnProperty(i)&&(t+=a(e[i]));return t}function a(e,t=!0){switch(typeof e){case"object":return t?o(e):c;case"string":return function(e){return 32+e.length}(e);case"number":return s;case"boolean":return 4;default:return 8}}function l(...e){return e.reduce((e,t)=>e+(t?(0,r.iu)(t)?t.byteLength+p:Array.isArray(t)?u(t,s):0:0),0)}function u(e,t){return h+e.length*t}const c=32,h=16,p=145,d=64},72802(e,t,i){i.d(t,{U:()=>s});var r=i(19419);class s{constructor(e,t,i,s=(0,r.vt)()){this._level=e,this._row=t,this._col=i,this.extent=s}get id(){return this._id??=`${this.level}/${this.row}/${this.col}`,this._id}get level(){return this._level}set level(e){this._level=e,this._id=null}get row(){return this._row}set row(e){this._row=e,this._id=null}get col(){return this._col}set col(e){this._col=e,this._id=null}toJSON(){return{level:this._level,row:this._row,col:this._col,extent:this.extent}}static fromJSON(e){return new s(e.level,e.row,e.col,e.extent)}}},82371(e,t,i){i.d(t,{E9:()=>f,Tw:()=>p,X6:()=>d});var r=i(11254),s=i(5443),n=i(86738),o=i(16930),a=i(87186),l=i(20223),u=i(2272),c=i(22671);async function h(e,t,i){const h=(0,u.Dl)(e),{rasterFunction:p,sourceJSON:d}=t||{},f=p?JSON.stringify(p.rasterFunctionDefinition||p):null,m=(0,u.lF)({...h.query,renderingRule:f,f:"json"}),g=(0,u.jV)(m,i);e=h.path;const y=d||await(0,r.A)(e,g).then(e=>e.data),v=y.hasRasterAttributeTable?(0,r.A)(`${e}/rasterAttributeTable`,g):null,w=y.hasColormap?(0,r.A)(`${e}/colormap`,g):null,b=y.hasHistograms?(0,r.A)(`${e}/histograms`,g):null,A=y.currentVersion>=10.3?(0,r.A)(`${e}/keyProperties`,g):null,_=y.hasMultidimensions?(0,r.A)(`${e}/multidimensionalInfo`,g):null,C=y.currentVersion>=10.81?(0,r.A)(`${e}/statistics`,g):null,R=await Promise.allSettled([v,w,b,A,_,C]),S=s.A.fromJSON(y.extent),M=Math.ceil(S.width/y.pixelSizeX-.1),O=Math.ceil(S.height/y.pixelSizeY-.1),x=o.A.fromJSON(y.spatialReference||y.extent.spatialReference),I="fulfilled"===R[0].status?R[0].value?.data:null,T=I?.features?.length?c.A.fromJSON(I):null,P="fulfilled"===R[1].status?R[1].value?.data.colormap:null,z=P?.length?P:null,F="fulfilled"===R[2].status?R[2].value?.data.histograms:null,D=F?.[0]?.counts?.length?F:null,N="fulfilled"===R[3].status?R[3].value?.data??{}:{},Z="fulfilled"===R[4].status?R[4].value?.data.multidimensionalInfo:null,L=Z?.variables?.length?Z:null;L&&L.variables.forEach(e=>{e.statistics?.length&&e.statistics.forEach(e=>{e.avg=e.mean,e.stddev=e.standardDeviation}),e.dimensions?.forEach(e=>{"StdTime"!==e.name||e.recurring||e.unit||(e.unit="ISO8601")})});let $=null;const j="fulfilled"===R[5].status?R[5].value?.data.statistics:null;if(j&&j.length===y.bandCount)$=j.map(e=>({avg:e.mean,count:e.count,max:e.max,median:e.median,min:e.min,mode:e.mode,stddev:e.standardDeviation,sum:e.sum}));else if(y.minValues&&y.minValues.length===y.bandCount){$=[];for(let e=0;e<y.minValues.length;e++)$.push({min:y.minValues[e],max:y.maxValues[e],avg:y.meanValues[e],stddev:y.stdvValues[e]})}const{defaultVariable:J,serviceDataType:V}=y;J&&J!==N.DefaultVariable&&(N.DefaultVariable=J),V?.includes("esriImageServiceDataTypeVector")&&!V.includes(N.DataType)&&(N.DataType=V.replace("esriImageServiceDataType",""));let E=y.noDataValue;y.noDataValues?.length&&y.noDataValues.some(e=>e!==E)&&(E=y.noDataValues);const q=y.transposeInfo?new l.A({blockWidth:256,blockHeight:256,pyramidBlockWidth:256,pyramidBlockHeight:256,pyramidScalingFactor:2,compression:"lerc",origin:new n.A({x:y.extent.xmin,y:y.extent.ymax,spatialReference:x}),firstPyramidLevel:1,maximumPyramidLevel:Math.max(0,Math.round(Math.log(Math.max(M,O))/Math.LN2-8)),transposeInfo:y.transposeInfo}):void 0;return new a.A({width:M,height:O,bandCount:y.bandCount,extent:s.A.fromJSON(y.extent),spatialReference:x,pixelSize:new n.A({x:y.pixelSizeX,y:y.pixelSizeY,spatialReference:x}),pixelType:y.pixelType.toLowerCase(),statistics:$,attributeTable:T,colormap:z,histograms:D,keyProperties:N,noDataValue:E,multidimensionalInfo:L,storageInfo:q})}function p(e,t,i){return h(e,{sourceJSON:t},i)}function d(e,t,i){return h(e,{rasterFunction:t},i)}function f(e,t){e.attributeTable||(t.hasRasterAttributeTable=!1),e.histograms||(t.hasHistograms=!1),e.colormap||(t.hasColormap=!1),e.multidimensionalInfo||(t.hasMultidimensions=!1)}},87045(e,t,i){i.d(t,{A:()=>w});var r,s=i(5482),n=i(66552),o=i(25482),a=i(86211),l=i(91429),u=i(56507),c=i(86738),h=i(16930),p=i(21325),d=i(28735),f=i(91806),m=i(72802),g=i(36005),y=i(43937);const v=new n.J({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"});let w=class extends o.o{static{r=this}static create(e={}){const{resolutionFactor:t=1,scales:i,size:s=256,spatialReference:n=h.A.WebMercator,numLODs:o=24}=e;if(!(0,p.fn)(n)){const e=[];if(i)for(let t=0;t<i.length;t++){const r=i[t];e.push(new f.A({level:t,scale:r,resolution:r}))}else{let t=5e-4;for(let i=o-1;i>=0;i--)e.unshift(new f.A({level:i,scale:t,resolution:t})),t*=2}return new r({dpi:96,lods:e,origin:new c.A(0,0,n),size:[s,s],spatialReference:n})}const l=(0,p.Vp)(n),u=e.origin?new c.A({x:e.origin.x,y:e.origin.y,spatialReference:n}):new c.A(l?{x:l.origin[0],y:l.origin[1],spatialReference:n}:{x:0,y:0,spatialReference:n}),d=1/(39.37*(0,a.GA)(n)*96),m=[];if(i)for(let e=0;e<i.length;e++){const t=i[e],r=t*d;m.push(new f.A({level:e,scale:t,resolution:r}))}else{let e=(0,p.EA)(n)?512/s*591657527.5917094:256/s*591657527.591555;const i=Math.ceil(o/t);m.push(new f.A({level:0,scale:e,resolution:e*d}));for(let r=1;r<i;r++){const i=e/2**t,s=i*d;m.push(new f.A({level:r,scale:i,resolution:s})),e=i}}return new r({dpi:96,lods:m,origin:u,size:[s,s],spatialReference:n})}constructor(e){super(e),this.dpi=96,this.format=null,this.origin=null,this.size=null,this.spatialReference=null}get isWrappable(){const{spatialReference:e,origin:t}=this;if(e&&t){const i=(0,p.Vp)(e);return e.isWrappable&&!!i&&Math.abs(i.origin[0]-t.x)<=i.dx}return!1}readOrigin(e,t){return c.A.fromJSON({spatialReference:t.spatialReference,...e})}set lods(e){let t=0,i=0;const r=[],s=this._levelToLOD={};e&&(t=-1/0,i=1/0,e.forEach(e=>{r.push(e.scale),t=e.scale>t?e.scale:t,i=e.scale<i?e.scale:i,s[e.level]=e})),this._set("scales",r),this._set("lods",e),this._initializeUpsampleLevels()}readSize(e,t){return[t.cols,t.rows]}writeSize(e,t){t.cols=e[0],t.rows=e[1]}zoomToScale(e){const t=this.scales;if(e<=0)return t[0];if(e>=t.length-1)return t[t.length-1];const i=Math.floor(e),r=i+1;return t[i]/(t[i]/t[r])**(e-i)}scaleToZoom(e){const t=this.scales,i=t.length-1;let r=0;for(;r<i;r++){const i=t[r],s=t[r+1];if(i<=e)return r;if(s===e)return r+1;if(i>e&&s<e)return r+Math.log(i/e)/Math.log(i/s)}return r}tileAt(e,t,i,r){const s=this.lodAt(e);if(!s)return null;let n,o;if("number"==typeof t)n=t,o=i;else if((0,p.aI)(t.spatialReference,this.spatialReference))n=t.x,o=t.y,r=i;else{const e=(0,d.Cv)(t,this.spatialReference);if(null==e)return null;n=e.x,o=e.y,r=i}const a=s.resolution*this.size[0],l=s.resolution*this.size[1];return r??=new m.U(0,0,0),r.level=e,r.row=Math.floor((this.origin.y-o)/l+.001),r.col=Math.floor((n-this.origin.x)/a+.001),this.updateTileInfo(r),r}updateTileInfo(e,t=0){if(!("extent"in e))return!1;let i=this.lodAt(e.level);if(!i&&1===t){const t=this.lods[this.lods.length-1];t.level<e.level&&(i=t)}if(!i)return!1;const r=e.level-i.level,s=i.resolution*this.size[0]/2**r,n=i.resolution*this.size[1]/2**r;return e.extent[0]=this.origin.x+e.col*s,e.extent[1]=this.origin.y-(e.row+1)*n,e.extent[2]=e.extent[0]+s,e.extent[3]=e.extent[1]+n,!0}upsampleTile(e){const t=this._upsampleLevels[e.level];return!(!t||-1===t.parentLevel||(e.level=t.parentLevel,e.row=Math.floor(e.row/t.factor+.001),e.col=Math.floor(e.col/t.factor+.001),this.updateTileInfo(e),0))}getTileBounds(e,t){const i=this.lodAt(t.level);if(null==i)return null;const{resolution:r}=i,s=r*this.size[0],n=r*this.size[1];return e[0]=this.origin.x+t.col*s,e[1]=this.origin.y-(t.row+1)*n,e[2]=e[0]+s,e[3]=e[1]+n,e}lodAt(e){return this._levelToLOD?.[e]??null}clone(){return r.fromJSON(this.write({}))}getCompatibleForVTL(e){if(this.size[0]!==this.size[1]||256===this.size[0]&&512===e)return null;const t=(512===this.size[0]&&256===e?-1:0)+(this.spatialReference.isGeographic?1:0);if(this.size[0]===e&&0===t)return this;const i=[],s=this.lods.length-t;for(let e=0;e<s;e++){const r=e+t,{scale:s,resolution:n}=r>=0?this.lods[r]:{scale:2*this.lods[0].scale,resolution:2*this.lods[0].resolution};i.push(new f.A({level:e,scale:s,resolution:n}))}return new r({size:[e,e],dpi:this.dpi,format:this.format,compressionQuality:this.compressionQuality,origin:this.origin,spatialReference:this.spatialReference,lods:i})}_initializeUpsampleLevels(){const e=this.lods;this._upsampleLevels=[];let t=null;for(let i=0;i<e.length;i++){const r=e[i];this._upsampleLevels[r.level]={parentLevel:t?t.level:-1,factor:t?t.resolution/r.resolution:0},t=r}}};(0,s.Cg)([(0,l.MZ)({type:Number,json:{write:!0}})],w.prototype,"compressionQuality",void 0),(0,s.Cg)([(0,l.MZ)({type:Number,json:{write:!0}})],w.prototype,"dpi",void 0),(0,s.Cg)([(0,l.MZ)({type:String,json:{read:v.read,write:v.write,origins:{"web-scene":{read:!1,write:!1}}}})],w.prototype,"format",void 0),(0,s.Cg)([(0,l.MZ)({readOnly:!0})],w.prototype,"isWrappable",null),(0,s.Cg)([(0,l.MZ)({type:c.A,json:{write:!0}})],w.prototype,"origin",void 0),(0,s.Cg)([(0,g.w)("origin")],w.prototype,"readOrigin",null),(0,s.Cg)([(0,l.MZ)({type:[f.A],value:null,json:{write:!0}})],w.prototype,"lods",null),(0,s.Cg)([(0,l.MZ)({readOnly:!0})],w.prototype,"scales",void 0),(0,s.Cg)([(0,l.MZ)({cast:e=>Array.isArray(e)?e:"number"==typeof e?[e,e]:[256,256]})],w.prototype,"size",void 0),(0,s.Cg)([(0,g.w)("size",["rows","cols"])],w.prototype,"readSize",null),(0,s.Cg)([(0,y.K)("size",{cols:{type:u.jz},rows:{type:u.jz}})],w.prototype,"writeSize",null),(0,s.Cg)([(0,l.MZ)({type:h.A,json:{write:!0}})],w.prototype,"spatialReference",void 0),w=r=(0,s.Cg)([(0,l.$K)("esri.layers.support.TileInfo")],w)},90561(e,t,i){i.r(t),i.d(t,{default:()=>U});var r,s=i(5482),n=i(37838),o=i(69540),a=i(49186),l=i(53966),u=i(25728),c=i(74887),h=i(36708),p=i(91429),d=i(56507),f=i(89808),m=i(99959),g=i(5359);class y extends m.A{get[(r=g.H,f.Q)](){return this.layer}constructor(e){super(),this[r]=!0,this.type="imagery-tile",this.layer=e}get id(){return this.layer.id}}var v=i(4146),w=i(18768),b=i(63074),A=i(69208),_=i(16131),C=i(8303),R=i(72545),S=i(56551),M=i(54310),O=i(25036),x=i(82935),I=i(82806),T=i(7548),P=i(23636),z=i(1003),F=i(99235),D=i(10873),N=i(20437),Z=i(74797),L=i(22796),$=i(87045),j=i(24212),J=i(30291),V=i(88625),E=i(59923);let q=class extends((0,b.dM)((0,O.j)((0,_.q)((0,C.A)((0,S.H)((0,A.d)((0,I.b)((0,R.G)((0,x.e)((0,w.b)((0,M.J)((0,u.M)((0,o.OU)(v.A)))))))))))))){constructor(...e){super(...e),this._primaryRasters=[],this.graphicOrigin=new y(this),this.legendEnabled=!0,this.isReference=null,this.listMode="show",this.sourceJSON=null,this.version=null,this.type="imagery-tile",this.operationalLayerType="ArcGISTiledImageServiceLayer",this.popupEnabled=!0,this.popupTemplate=null,this.screenSizePerspectiveEnabled=!0,this.fields=null,this.source=void 0,this._debouncedSaveOperations=(0,c.sg)(async(e,t,r)=>{const{save:s,saveAs:n}=await i.e(9838).then(i.bind(i,59838));switch(e){case 0:return s(this,t);case 1:return n(this,r,t)}})}normalizeCtorArgs(e,t){return"string"==typeof e?{url:e,...t}:e}load(e){const t=null!=e?e.signal:null;return this.addResolvingPromise(this.loadFromPortal({supportedTypes:["Image Service"]},e).catch(c.QP).then(()=>this._openRaster(t))),Promise.resolve(this)}set elevationInfo(e){"relative-to-scene"!==e?.mode&&this._set("elevationInfo",e),this._validateElevationInfo(e)}get defaultPopupTemplate(){return this.createPopupTemplate()}get rasterFields(){const e=[(0,Z.rZ)("Pixel Value"),(0,Z.dy)("Raw Pixel Value")],t=this.raster?.rasterInfo??this.serviceRasterInfo,i=t?.attributeTable;if(i){const t=(0,Z.jC)(i);e.push(...t)}const r=t?.dataType,s=t?.multidimensionalInfo;if(("vector-magdir"===r||"vector-uv"===r)&&null!=s){const t=s.variables[0].unit?.trim(),i=(0,Z.DV)(t),r=(0,Z.y6)();e.push(i,r)}if(s){const t=(0,Z.AL)(s);e.push(...t)}return e}get renderer(){return super.renderer}set renderer(e){super.renderer=e}createPopupTemplate(e){const{rasterFields:t}=this,i=e?.visibleFieldNames??new Set(t.map(({name:e})=>e).filter(e=>e!==Z.F_.rawServicePixelValue)),r=(0,J.tn)({fields:t,title:this.title},{...e,visibleFieldNames:i}),{rasterInfo:s}=this.raster;return r?.fieldInfos&&s&&(0,Z.h4)(r.fieldInfos,s),r}async generateRasterInfo(e,t){const i=(0,d.PZ)(L.A,e);if(await this.load(),!i||"none"===i.functionName?.toLowerCase())return this.serviceRasterInfo;try{const{rasterInfo:e}=await this._openFunctionRaster(i,t);return e}catch(e){if(e instanceof a.A)throw e;throw new a.A("imagery-tile-layer","the given raster function is not supported")}}async save(e){return this._debouncedSaveOperations(0,e)}async saveAs(e,t){return this._debouncedSaveOperations(1,t,e)}supportsWrite(){const e=this._primaryRasters[0]??this.raster;return!!(this.loaded?"RasterTileServer"===e.datasetFormat&&("Raster"===e.tileType||"Map"===e.tileType):this.url&&/\/ImageServer(\/|\/?$)/i.test(this.url))}write(e,t){return this.supportsWrite()?super.write(e,t):((0,E.U4)(t,this),null)}async hasDataChanged(){try{const e=this._primaryRasters[0]??this.raster,{dataChanged:t,updates:i}=await e.refresh();return t&&(this.serviceRasterInfo!==e.rasterInfo&&this._set("serviceRasterInfo",e.rasterInfo),e.sourceJSON&&this.sourceJSON!==e.sourceJSON&&(this.sourceJSON=e.sourceJSON),i&&this.read(i,{origin:"service",url:this.parsedUrl,ignoreDefaults:!0})),t}catch{return!1}}async _openRaster(e){let t=!1;if(this.raster)await this._openFromRaster(this.raster,e),t=(0,T.qg)(this.raster),!t&&this.rasterFunction&&(this._primaryRasters=[this.raster],await this._initializeWithFunctionRaster(this.rasterFunction));else{const{url:t,rasterFunction:i,source:r}=this;if(!t&&!r)throw new a.A("imagery-tile-layer:open","missing url or source parameter");r?await this._openFromSource(r,e):i?await this._openFromUrlWithRasterFunction(t,i,e):await this._openFromUrl(t,e)}const i=this.raster.rasterInfo;if(!i)throw new a.A("imagery-tile-layer:load","cannot load resources on "+this.url);if(this._set("serviceRasterInfo",t?i:this._primaryRasters[0].rasterInfo),this._set("spatialReference",i.spatialReference),this.sourceJSON=this.sourceJSON||this.raster.sourceJSON,null!=this.sourceJSON){const e="Map"===this.raster.tileType&&null!=this.sourceJSON.minLOD&&null!=this.sourceJSON.maxLOD?this.sourceJSON:{...this.sourceJSON,minScale:0,maxScale:0};this.read(e,{origin:"service"})}else this.read({tileInfo:this.serviceRasterInfo?.storageInfo.tileInfo.toJSON()},{origin:"service"});this.title||(this.title=this.raster.datasetName),"Map"===this.raster.tileType&&(this.popupEnabled=!1),this._configDefaultSettings(),this.addHandles((0,h.wB)(()=>this.customParameters,e=>{this.raster&&(this.raster.ioConfig.customFetchParameters=e)}))}async _openFromRaster(e,t){e.rasterInfo||await e.open({signal:t}),this._primaryRasters=(0,T.pb)(e),this.url||(this.url=this._primaryRasters[0].url)}async _openFromUrlWithRasterFunction(e,t,i){const r=[e];t&&(0,F.UD)(t.toJSON(),r);const s=await Promise.all(r.map(e=>z.default.open({url:e,sourceJSON:this.sourceJSON,ioConfig:{sampling:"closest",...this.ioConfig,customFetchParameters:this.customParameters},signal:i}))),n=s.findIndex(e=>null==e);if(n>-1)throw new a.A("imagery-tile-layer:open",`cannot open raster: ${r[n]}`);return this._primaryRasters=s,this._initializeWithFunctionRaster(t)}async _openFromUrl(e,t){const i=await z.default.open({url:e,sourceJSON:this.sourceJSON,ioConfig:{sampling:"closest",...this.ioConfig,customFetchParameters:this.customParameters},signal:t});if(null==i)throw new a.A("imagery-tile-layer:open",`cannot open raster: ${e}`);this._primaryRasters=[i],this.raster=i}async _openFromSource(e,t){const i="the tiled imagery data source is not supported",r="coverage"===e.type?.toLowerCase()?"CovJSON":e.extent&&e.pixelBlock?"MEMORY":null;if(!r)throw new a.A("imagery-tile-layer:open",i);"MEMORY"===r&&(e={...e,pixelBlock:void 0,pixelBlocks:[e.pixelBlock]});const s=await z.default.open({url:"",source:e,datasetFormat:r,ioConfig:{sampling:"closest",...this.ioConfig,customFetchParameters:this.customParameters},signal:t});if(null==s)throw new a.A("imagery-tile-layer:open",i);this._primaryRasters=[s],this.rasterFunction?await this._initializeWithFunctionRaster(this.rasterFunction):this.raster=s}async _openFunctionRaster(e,t){const i={raster:this._primaryRasters[0]};this._primaryRasters.length>1&&this._primaryRasters.forEach(e=>i[e.url]=e);const r=(0,F.vt)(e.functionDefinition?.toJSON()??e.toJSON(),i),s=new P.A({rasterFunction:r});return await s.open(t),s}async _initializeWithFunctionRaster(e,t){try{this.raster=await this._openFunctionRaster(e,t)}catch(e){e instanceof a.A&&l.A.getLogger(this).error("imagery-tile-layer:open",e.message),l.A.getLogger(this).warn("imagery-tile-layer:open","the raster function cannot be applied and is removed"),this._set("rasterFunction",null),this.raster=this._primaryRasters[0]}}_validateElevationInfo(e){(0,j.XF)(l.A.getLogger(this),(0,j.$7)("ImageryTile layers","relative-to-scene",e)),(0,j.XF)(l.A.getLogger(this),(0,j.tW)("ImageryTile layers",e))}};(0,s.Cg)([(0,p.MZ)({clonable:!1})],q.prototype,"_primaryRasters",void 0),(0,s.Cg)([(0,p.MZ)({type:V.A,value:null,json:{name:"layerDefinition.elevationInfo",write:!0,origins:{"portal-item":{read:!1,write:!1},"web-map":{read:!1,write:!1}}}})],q.prototype,"elevationInfo",null),(0,s.Cg)([(0,p.MZ)({type:$.A})],q.prototype,"tileInfo",void 0),(0,s.Cg)([(0,p.MZ)({readOnly:!0,clonable:!1})],q.prototype,"graphicOrigin",void 0),(0,s.Cg)([(0,p.MZ)(D.fV)],q.prototype,"legendEnabled",void 0),(0,s.Cg)([(0,p.MZ)({type:Boolean,json:{read:!1,write:{enabled:!0,overridePolicy:()=>({enabled:!1})}}})],q.prototype,"isReference",void 0),(0,s.Cg)([(0,p.MZ)({type:["show","hide"]})],q.prototype,"listMode",void 0),(0,s.Cg)([(0,p.MZ)({json:{read:!0,write:!0}})],q.prototype,"blendMode",void 0),(0,s.Cg)([(0,p.MZ)({type:L.A,json:{name:"renderingRule",write:!0}})],q.prototype,"rasterFunction",void 0),(0,s.Cg)([(0,p.MZ)()],q.prototype,"sourceJSON",void 0),(0,s.Cg)([(0,p.MZ)({readOnly:!0,json:{origins:{service:{read:{source:"currentVersion"}}}}})],q.prototype,"version",void 0),(0,s.Cg)([(0,p.MZ)({readOnly:!0,json:{read:!1}})],q.prototype,"type",void 0),(0,s.Cg)([(0,p.MZ)({type:["ArcGISTiledImageServiceLayer"]})],q.prototype,"operationalLayerType",void 0),(0,s.Cg)([(0,p.MZ)({type:Boolean,value:!0,json:{read:{source:"disablePopup",reader:(e,t)=>!t.disablePopup},write:{target:"disablePopup",overridePolicy(){return{enabled:!this.loaded||"Raster"===this.raster.tileType}},writer(e,t,i){t[i]=!e}}}})],q.prototype,"popupEnabled",void 0),(0,s.Cg)([(0,p.MZ)({type:n.A,json:{read:{source:"popupInfo"},write:{target:"popupInfo",overridePolicy(){return{enabled:!this.loaded||"Raster"===this.raster.tileType}}}}})],q.prototype,"popupTemplate",void 0),(0,s.Cg)([(0,p.MZ)({readOnly:!0})],q.prototype,"defaultPopupTemplate",null),(0,s.Cg)([(0,p.MZ)(D.PY)],q.prototype,"screenSizePerspectiveEnabled",void 0),(0,s.Cg)([(0,p.MZ)({readOnly:!0,type:[N.A]})],q.prototype,"fields",void 0),(0,s.Cg)([(0,p.MZ)({readOnly:!0,type:[N.A]})],q.prototype,"rasterFields",null),(0,s.Cg)([(0,p.MZ)({constructOnly:!0})],q.prototype,"source",void 0),q=(0,s.Cg)([(0,p.$K)("esri.layers.ImageryTileLayer")],q);const U=q},91806(e,t,i){i.d(t,{A:()=>l});var r,s=i(5482),n=i(25482),o=i(91429),a=i(56507);let l=class extends n.o{static{r=this}constructor(e){super(e),this.cols=null,this.level=0,this.levelValue=null,this.origin=null,this.resolution=0,this.rows=null,this.scale=0}clone(){return new r({cols:this.cols,level:this.level,levelValue:this.levelValue,resolution:this.resolution,rows:this.rows,scale:this.scale})}};(0,s.Cg)([(0,o.MZ)({json:{write:!0,origins:{"web-document":{read:!1,write:!1},"portal-item":{read:!1,write:!1}}}})],l.prototype,"cols",void 0),(0,s.Cg)([(0,o.MZ)({type:a.jz,json:{write:!0}})],l.prototype,"level",void 0),(0,s.Cg)([(0,o.MZ)({type:String,json:{write:!0}})],l.prototype,"levelValue",void 0),(0,s.Cg)([(0,o.MZ)({json:{write:!0,origins:{"web-document":{read:!1,write:!1},"portal-item":{read:!1,write:!1}}}})],l.prototype,"origin",void 0),(0,s.Cg)([(0,o.MZ)({type:Number,json:{write:!0}})],l.prototype,"resolution",void 0),(0,s.Cg)([(0,o.MZ)({json:{write:!0,origins:{"web-document":{read:!1,write:!1},"portal-item":{read:!1,write:!1}}}})],l.prototype,"rows",void 0),(0,s.Cg)([(0,o.MZ)({type:Number,json:{write:!0}})],l.prototype,"scale",void 0),l=r=(0,s.Cg)([(0,o.$K)("esri.layers.support.LOD")],l)}}]);