Files
ADHA_mobile_project/assets/ImageryLayer-e61415db.js
T
2024-02-28 17:06:42 +05:00

2 lines
90 KiB
JavaScript

import{bb as B,kP as Dt,A as n,B as l,a9 as P,C as F,a6 as z,f as he,lk as le,ll as $e,lm as Me,E as dt,aH as L,aU as ie,bs as ye,br as ge,ar as N,b$ as qe,dS as Ke,ab as Ne,dX as Ee,a1 as Tt,iG as nt,cD as Se,dT as ht,kU as be,z as ne,ep as yt,aJ as Pt,a8 as E,c_ as ce,fC as _t,du as Nt,cy as Ot,I as Ct,s as C,a7 as G,aI as Ge,aV as He,D as Vt,K as At,ln as jt,hX as $t,bm as Mt,dO as Et,bn as Jt,dp as qt,dq as Lt,dn as zt,dR as Gt,dP as Ht,dr as Ut,bS as Bt,eM as Qt,bv as kt,fx as Wt,fO as _e,dV as Kt,dt as Zt,fD as Xt,F as Yt,bq as ei,_ as ti}from"./index-b5c8f851.js";import{N as w,b as oe,i as Ie,j as H,c as ii,l as ri,d as si,n as Ue,a as ni,h as Be,f as ai,m as oi,p as li,k as ui,E as pi,V as ci,K as mi,t as di}from"./ImageHistogramParameters-c0ab9cd7.js";import{m as Qe,g as hi,p as yi,d as gi}from"./multidimensionalUtils-bffdf14d.js";import{h as fi,u as ke,s as Ri,l as vi}from"./dataUtils-c2b057a0.js";import{G as gt,e as ft,f as bi,s as wi,A as Si,n as xi,a as Rt,L as Fi,j as lt,P as Ii}from"./RasterSymbolizer-a162ee17.js";import{t as ut}from"./imageBitmapUtils-e0a2d322.js";import{s as Di}from"./executeQueryJSON-b554ead2.js";import"./featureConversionUtils-6aca8295.js";import"./pbf-eb90fa42.js";import"./AttachmentInfo-36750a43.js";import{s as Ti,n as Pi}from"./executeForIds-8a8c155e.js";import"./utils-6d77327b.js";import"./utils-ebbcf3da.js";import"./generateRendererUtils-d29abb94.js";import"./colorUtils-23771bca.js";import"./query-cd419ad0.js";import"./pbfQueryUtils-e46c5add.js";import"./OptimizedGeometry-d94e541f.js";import"./OptimizedFeatureSet-1d1ac4b9.js";const _i={StretchFunction:{arguments:{ComputeGamma:{isDataset:!1,isPublic:!1,name:"ComputeGamma",type:"RasterFunctionVariable",value:!1},DRA:{isDataset:!1,isPublic:!1,name:"DRA",type:"RasterFunctionVariable",value:!1},EstimateStatsHistogram:{isDataset:!1,isPublic:!1,name:"EstimateStatsHistogram",type:"RasterFunctionVariable",value:!1},Gamma:{displayName:"Gamma",isDataset:!1,isPublic:!1,name:"Gamma",type:"RasterFunctionVariable"},Histograms:{isDataset:!1,isPublic:!1,name:"Histograms",type:"RasterFunctionVariable"},Max:{isDataset:!1,isPublic:!1,name:"Max",type:"RasterFunctionVariable",value:255},MaxPercent:{isDataset:!1,isPublic:!1,name:"MaxPercent",type:"RasterFunctionVariable",value:.5},Min:{isDataset:!1,isPublic:!1,name:"Min",type:"RasterFunctionVariable",value:0},MinPercent:{isDataset:!1,isPublic:!1,name:"MinPercent",type:"RasterFunctionVariable",value:.25},NumberOfStandardDeviations:{isDataset:!1,isPublic:!1,name:"NumberOfStandardDeviation",type:"RasterFunctionVariable",value:2},Raster:{isDataset:!0,isPublic:!1,name:"Raster",type:"RasterFunctionVariable"},SigmoidStrengthLevel:{isDataset:!1,isPublic:!1,name:"SigmoidStrengthLevel",type:"RasterFunctionVariable",value:2},Statistics:{isDataset:!1,isPublic:!1,name:"Statistics",type:"RasterFunctionVariable"},StretchType:{isDataset:!1,isPublic:!1,name:"StretchType",type:"RasterFunctionVariable",value:0},type:"StretchFunctionArguments",UseGamma:{isDataset:!1,isPublic:!1,name:"UseGamma",type:"RasterFunctionVariable",value:!1}},description:"Enhances an image by adjusting the range of values displayed. This does not alter the underlying pixel values. If a pixel has a value outside of the specified range, it will appear as either the minimum or maximum value.",function:{description:"Enhances an image by adjusting the range of values displayed. This does not alter the underlying pixel values. If a pixel has a value outside of the specified range, it will appear as either the minimum or maximum value.",name:"Stretch",pixelType:"UNKNOWN",type:"StretchFunction"},functionType:0,name:"Stretch",thumbnail:""},RemapFunction:{name:"Remap",description:"Changes pixel values by assigning new values to ranges of pixel values or using an external table.",function:{type:"RemapFunction",pixelType:"UNKNOWN",name:"Remap",description:"Changes pixel values by assigning new values to ranges of pixel values or using an external table."},arguments:{Raster:{name:"Raster",isPublic:!1,isDataset:!0,type:"RasterFunctionVariable"},UseTable:{name:"UseTable",isPublic:!1,isDataset:!1,value:!1,type:"RasterFunctionVariable"},InputRanges:{name:"InputRanges",isPublic:!1,isDataset:!1,type:"RasterFunctionVariable",displayName:"Input Ranges"},OutputValues:{name:"OutputValues",isPublic:!1,isDataset:!1,type:"RasterFunctionVariable",displayName:"Output Values"},NoDataRanges:{name:"NoDataRanges",isPublic:!1,isDataset:!1,type:"RasterFunctionVariable",displayName:"NoData Ranges"},Table:{name:"Table",isPublic:!1,isDataset:!1,type:"RasterFunctionVariable"},InputField:{name:"InputField",isPublic:!1,isDataset:!1,type:"RasterFunctionVariable"},OutputField:{name:"OutputField",isPublic:!1,isDataset:!1,type:"RasterFunctionVariable"},InputMaxField:{name:"InputMaxField",isPublic:!1,isDataset:!1,type:"RasterFunctionVariable"},RemapTableType:{name:"RemapTableType",isPublic:!1,isDataset:!1,value:1,type:"RasterFunctionVariable"},AllowUnmatched:{name:"AllowUnmatched",isPublic:!1,isDataset:!1,value:!0,type:"RasterFunctionVariable"},type:"RemapFunctionArguments"},functionType:0,thumbnail:""},ColormapFunction:{name:"Colormap",description:"Changes pixel values to display the raster data as either a grayscale or a red, green, blue (RGB) image, based on a colormap or a color ramp.",function:{type:"ColormapFunction",pixelType:"UNKNOWN",name:"Colormap",description:"Changes pixel values to display the raster data as either a grayscale or a red, green, blue (RGB) image, based on a colormap or a color ramp."},arguments:{Raster:{name:"Raster",isPublic:!1,isDataset:!0,type:"RasterFunctionVariable"},ColorSchemeType:{name:"ColorSchemeType",isPublic:!1,isDataset:!1,value:1,type:"RasterFunctionVariable"},Colormap:{name:"Colormap",isPublic:!1,isDataset:!1,type:"RasterFunctionVariable"},ColormapName:{name:"ColormapName",isPublic:!1,isDataset:!1,value:"Gray",type:"RasterFunctionVariable"},ColorRamp:{name:"ColorRamp",isPublic:!1,isDataset:!1,type:"RasterFunctionVariable"},type:"ColormapFunctionArguments"},functionType:0,thumbnail:""},ShadedReliefFunction:{name:"Shaded Relief",description:"Creates a multiband, color coded, 3D representation of the surface, with the sun's relative position taken into account for shading the image.",function:{type:"ShadedReliefFunction",pixelType:"UNKNOWN",name:"Shaded Relief",description:"Creates a multiband, color coded, 3D representation of the surface, with the sun's relative position taken into account for shading the image."},arguments:{Raster:{name:"Raster",isPublic:!1,isDataset:!0,type:"RasterFunctionVariable"},ColorSchemeType:{name:"ColorSchemeType",isPublic:!1,isDataset:!1,value:1,type:"RasterFunctionVariable"},ColorRamp:{name:"ColorRamp",isPublic:!1,isDataset:!1,type:"RasterFunctionVariable"},HillshadeType:{name:"HillshadeType",isPublic:!1,isDataset:!1,value:0,type:"RasterFunctionVariable"},Colormap:{name:"Colormap",isPublic:!1,isDataset:!1,type:"RasterFunctionVariable"},Azimuth:{name:"Azimuth",isPublic:!1,isDataset:!1,value:315,type:"RasterFunctionVariable"},Altitude:{name:"Altitude",isPublic:!1,isDataset:!1,value:45,type:"RasterFunctionVariable"},SlopeType:{name:"SlopeType",isPublic:!1,isDataset:!1,value:1,type:"RasterFunctionVariable"},ZFactor:{name:"ZFactor",isPublic:!1,isDataset:!1,value:1,type:"RasterFunctionVariable"},PSPower:{name:"PSPower",isPublic:!1,isDataset:!1,value:.664,type:"RasterFunctionVariable"},PSZFactor:{name:"PSZFactor",isPublic:!1,isDataset:!1,value:.024,type:"RasterFunctionVariable"},RemoveEdgeEffect:{name:"RemoveEdgeEffect",isPublic:!1,isDataset:!1,value:!1,type:"RasterFunctionVariable"},type:"ShadedReliefFunctionArguments"},functionType:0,thumbnail:""},HillshadeFunction:{name:"Hillshade",description:"Creates a 3D representation of the surface, with the sun's relative position taken into account for shading the image",function:{type:"HillshadeFunction",pixelType:"UNKNOWN",name:"Hillshade",description:"Creates a 3D representation of the surface, with the sun's relative position taken into account for shading the image"},arguments:{DEM:{name:"DEM",isPublic:!1,isDataset:!0,type:"RasterFunctionVariable"},HillshadeType:{name:"HillshadeType",isPublic:!1,isDataset:!1,value:0,type:"RasterFunctionVariable"},Azimuth:{name:"Azimuth",isPublic:!1,isDataset:!1,value:315,type:"RasterFunctionVariable"},Altitude:{name:"Altitude",isPublic:!1,isDataset:!1,value:45,type:"RasterFunctionVariable"},SlopeType:{name:"SlopeType",isPublic:!1,isDataset:!1,value:1,type:"RasterFunctionVariable"},ZFactor:{name:"ZFactor",isPublic:!1,isDataset:!1,value:1,type:"RasterFunctionVariable"},PSPower:{name:"PSPower",isPublic:!1,isDataset:!1,value:.664,type:"RasterFunctionVariable"},PSZFactor:{name:"PSZFactor",isPublic:!1,isDataset:!1,value:.024,type:"RasterFunctionVariable"},RemoveEdgeEffect:{name:"RemoveEdgeEffect",isPublic:!1,isDataset:!1,value:!1,type:"RasterFunctionVariable"},type:"HillshadeFunctionArguments"},functionType:0,thumbnail:""},ResampleFunction:{name:"Resample",description:"Changes the cell size of a raster.",function:{type:"ResampleFunction",pixelType:"UNKNOWN",name:"Resample",description:"Changes the cell size of a raster."},arguments:{Raster:{name:"Raster",isPublic:!1,isDataset:!0,type:"RasterFunctionVariable"},ResamplingType:{name:"ResamplingType",isPublic:!1,isDataset:!1,value:0,type:"RasterFunctionVariable"},InputCellSize:{name:"InputCellsize",isPublic:!1,isDataset:!1,value:{x:0,y:0},type:"RasterFunctionVariable"},OutputCellSize:{name:"OutputCellsize",isPublic:!1,isDataset:!1,value:{x:0,y:0},type:"RasterFunctionVariable"},type:"ResampleFunctionArguments"},functionType:0,thumbnail:""}},Ni=new Set(["u1","u2","u4","u8","s8","u16","s16"]),Oi={simple_scalar:"Simple Scalar",wind_barb:"Wind Barb",single_arrow:"Single Arrow",beaufort_kn:"Beaufort Wind (Knots)",beaufort_m:"Beaufort Wind (MetersPerSecond)",ocean_current_m:"Ocean Current (MetersPerSecond)",ocean_current_kn:"Ocean Current (Knots)"},Ci=new Set(["raster-stretch","unique-value","class-breaks","raster-shaded-relief","vector-field","raster-colormap"]);function vt(r){return Ci.has(r.type)}function We(r,i){var e;if(!r||!i)return B(r||i);const o=B(r);if(o.functionDefinition&&i.rasterFunctionDefinition){const t=i.rasterFunctionDefinition;(t.thumbnail||t.thumbnailEx)&&(t.thumbnail=t.thumbnailEx=void 0),bt(o.functionDefinition.arguments,i),o.rasterFunctionDefinition=o.functionDefinition.toJSON()}else((e=i.functionName)==null?void 0:e.toLowerCase())!=="none"&&(wt(o.functionArguments).Raster=i);return o}function bt(r,i){for(const o in r)o.toLowerCase()==="raster"&&(r[o].type==="RasterFunctionVariable"?(r[o]=i.rasterFunctionDefinition,r[o].type="RasterFunctionTemplate"):r[o].type==="RasterFunctionTemplate"&&bt(r[o].arguments,i))}function Z(r){const i=B(_i[r.functionName+"Function"]),o=r.functionArguments;for(const e in o)e.toLowerCase()==="raster"?(i.arguments[e]=Z(o[e]),i.arguments[e].type="RasterFunctionTemplate"):e.toLowerCase()==="colormap"?(i.arguments[e].value=Li(o[e]),i.arguments.ColorSchemeType.value=0):i.arguments[e].value=o[e];return i}function Vi(r,i){switch(i=i||{},r.type){case"raster-stretch":return $i(r,i);case"class-breaks":return Mi(r,i);case"unique-value":return Ei(r,i);case"raster-colormap":return Ji(r,i);case"vector-field":return Ai(r,i);case"raster-shaded-relief":return ji(r,i);case"flow":throw new Error("Unsupported rendering rule.")}}function wt(r){const i=(r==null?void 0:r.Raster)??(r==null?void 0:r.raster);return i&&i.declaredClass==="esri.layers.support.RasterFunction"?wt(i.functionArguments):r}const xe={none:0,standardDeviation:3,histogramEqualization:4,minMax:5,percentClip:6,sigmoid:9};function Ai(r,i){const o=new w;o.functionName="VectorFieldRenderer";const{dataType:e,bandNames:t}=i,s=e==="vector-uv";let a,u;if(t&&t.length===2){const R=t.map(f=>f.toLowerCase());a=R.indexOf("magnitude"),u=R.indexOf("direction")}a!==-1&&a!==null||(a=0,u=1);const p=r.rotationType==="arithmetic"?1:2,m=r.flowRepresentation==="flow-from"?0:1,c=r.visualVariables?r.visualVariables.find(R=>R.field==="Magnitude"):new Dt,d={magnitudeBandID:a,directionBandID:u,isUVComponents:s,referenceSystem:p,massFlowAngleRepresentation:m,symbolTileSize:50,symbolTileSizeUnits:100,calculationMethod:"Vector Average",symbologyName:Oi[r.style.toLowerCase().replace("-","_")],minimumMagnitude:c.minDataValue,maximumMagnitude:c.maxDataValue,minimumSymbolSize:c.minSize,maximumSymbolSize:c.maxSize};o.functionArguments=d;const y=Z(o);return i.convertToRFT?w.fromJSON({rasterFunctionDefinition:y}):o}function ji(r,i){const o=i.convertToRFT;if(i.dataType!=="elevation"&&(i.dataType!=="generic"||i.bandCount!==1||i.pixelType!=="s16"&&i.pixelType!=="s32"&&i.pixelType!=="f32"&&i.pixelType!=="f64"))return new w;const e=new w;e.functionName="Hillshade";const t=r.hillshadeType==="traditional"?0:1,s=r.scalingType==="none"?1:3,a={HillshadeType:t,SlopeType:s,ZFactor:r.zFactor};return t===0&&(a.Azimuth=r.azimuth,a.Altitude=r.altitude),s===3&&(a.PSPower=r.pixelSizePower,a.PSZFactor=r.pixelSizeFactor),e.functionArguments=a,e.variableName="Raster",r.colorRamp&&(e.functionName="ShadedRelief",o?a.ColorRamp=gt(r.colorRamp):a.Colormap=ft(r.colorRamp)),o?new w({rasterFunctionDefinition:Z(e)}):e}function $i(r,i){var u;const o=i.convertToRFT,e=new w;e.functionName="Stretch";const t=xe[bi.toJSON(r.stretchType)],s="u8",a={StretchType:t,Statistics:qi(r.statistics??[]),DRA:r.dynamicRangeAdjustment,UseGamma:r.useGamma,Gamma:r.gamma,ComputeGamma:r.computeGamma};if(r.outputMin!=null&&(a.Min=r.outputMin),r.outputMax!=null&&(a.Max=r.outputMax),t===xe.standardDeviation?(a.NumberOfStandardDeviations=r.numberOfStandardDeviations,e.outputPixelType=s):t===xe.percentClip?(a.MinPercent=r.minPercent,a.MaxPercent=r.maxPercent,e.outputPixelType=s):t===xe.minMax?e.outputPixelType=s:t===xe.sigmoid&&(a.SigmoidStrengthLevel=r.sigmoidStrengthLevel),e.functionArguments=a,e.variableName="Raster",r.colorRamp){const p=r.colorRamp,m=new w;if(o)m.functionArguments={ColorRamp:gt(p)};else{const c=wi(p,!0);if(c)m.functionArguments={colorRampName:c};else if(!i.convertColorRampToColormap||p.type!=="algorithmic"&&p.type!=="multipart"){const d=r.colorRamp.toJSON();d.type==="algorithmic"?d.algorithm=d.algorithm||"esriCIELabAlgorithm":d.type==="multipart"&&((u=d.colorRamps)!=null&&u.length)&&d.colorRamps.forEach(y=>y.algorithm=y.algorithm||"esriCIELabAlgorithm"),m.functionArguments={colorRamp:d}}else m.functionArguments={Colormap:ft(p)}}return m.variableName="Raster",m.functionName="Colormap",m.functionArguments.Raster=e,o?new w({rasterFunctionDefinition:Z(m)}):m}return o?new w({rasterFunctionDefinition:Z(e)}):e}function Mi(r,i){const o=[],e=[],t=[],s=[],{pixelType:u,rasterAttributeTable:p}=i,m=p==null?null:p.features,c=St(p);if(c&&m&&Array.isArray(m)&&r.classBreakInfos){r.classBreakInfos.forEach((h,g)=>{var $;const b=($=h.symbol)==null?void 0:$.color;let T;b!=null&&b.a&&h.minValue!=null&&h.maxValue!=null&&m.forEach(V=>{h.minValue!=null&&h.maxValue!=null&&(T=V.attributes[r.field],(T>=h.minValue&&T<h.maxValue||g===r.classBreakInfos.length-1&&T>=h.minValue)&&s.push([V.attributes[c],b.r,b.g,b.b]))})});const f=u?Je(s,u):s,v=new w;return v.functionName="Colormap",v.functionArguments={},v.functionArguments.Colormap=f,v.variableName="Raster",i.convertToRFT?new w({rasterFunctionDefinition:Z(v)}):v}r.classBreakInfos.forEach((f,v)=>{if(f.minValue==null||f.maxValue==null)return;const h=f.symbol&&f.symbol.color;h!=null&&h.a?(v===0?o.push(f.minValue,f.maxValue+1e-4):o.push(f.minValue+1e-4,f.maxValue+1e-4),e.push(v),s.push([v,h.r,h.g,h.b])):t.push(f.minValue,f.maxValue)});const d=u?Je(s,u):s,y=new w;y.functionName="Remap",y.functionArguments={InputRanges:o,OutputValues:e,NoDataRanges:t},y.variableName="Raster";const R=new w;return R.functionName="Colormap",R.functionArguments={Colormap:d,Raster:y},i.convertToRFT?new w({rasterFunctionDefinition:Z(R)}):R}function Je(r,i){const o=Ni.has(i)?fi(i):null;return o&&r.push([Math.floor(o[0]-1),0,0,0],[Math.ceil(o[1]+1),0,0,0]),r}function St(r){if(r==null)return;const{fields:i}=r,o=i==null?void 0:i.find(e=>(e==null?void 0:e.name)&&e.name.toLowerCase()==="value");return o==null?void 0:o.name}function Ei(r,i){var d,y,R;const o=[],{pixelType:e,rasterAttributeTable:t}=i,s=t==null?null:t.features,a=St(t),u=(y=(d=r.defaultSymbol)==null?void 0:d.color)==null?void 0:y.toRgb(),p=r.uniqueValueInfos;if(p)if(s){if(a){const f=new Map;p.forEach(h=>{var T;const g=h.value,b=(T=h.symbol)==null?void 0:T.color;g!=null&&(b!=null&&b.a)&&f.set(String(g),b.toRgb())});const v=r.field;s.forEach(({attributes:h})=>{const g=String(h[v]),b=h[a],T=f.get(g);T?o.push([b,...T]):u&&o.push([b,...u])})}}else for(let f=0;f<p.length;f++){const v=p[f],h=(R=v.symbol)==null?void 0:R.color,g=+v.value;if(h!=null&&h.a){if(isNaN(g))return null;o.push([g,h.r,h.g,h.b])}}const m=e?Je(o,e):o,c=new w;return c.functionName="Colormap",c.functionArguments={},c.functionArguments.Colormap=m,c.variableName="Raster",i.convertToRFT?new w({rasterFunctionDefinition:Z(c)}):c}function Ji(r,i){const o=r.extractColormap();if(!o||o.length===0)return null;const{pixelType:e}=i,t=e?Je(o,e):o,s=new w;return s.functionName="Colormap",s.functionArguments={},s.functionArguments.Colormap=t,i.convertToRFT?new w({rasterFunctionDefinition:Z(s)}):s}function qi(r){const i=[];return r==null||r.forEach(o=>{const e=o;if(Array.isArray(e))i.push(e);else{if(e.min==null||e.max==null)return;const t=[e.min,e.max,e.avg||0,e.stddev||0];i.push(t)}}),i}function Li(r){const i=[],o=[];return r.forEach(e=>{i.push(e[0]),o.push(Si([...e.slice(1),255]))}),{type:"RasterColormap",values:i,colors:o}}let _=class extends z{constructor(){super(...arguments),this.layer=null,this.compression=void 0,this.pixelType=void 0,this.lercVersion=2}get adjustAspectRatio(){return this.layer.adjustAspectRatio}writeAdjustAspectRatio(i,o,e){this.layer.version<10.3||(o[e]=i)}get bandIds(){return this.layer.bandIds}get compressionQuality(){return this.layer.compressionQuality}writeCompressionQuality(i,o,e){this.format&&this.format.toLowerCase().includes("jpg")&&i!=null&&(o[e]=i)}get compressionTolerance(){return this.layer.compressionTolerance}writeCompressionTolerance(i,o,e){this.format==="lerc"&&i!=null&&(o[e]=i)}get format(){var i;return((i=this.layer.renderer)==null?void 0:i.type)==="vector-field"?"lerc":this.layer.format}get interpolation(){return this.layer.interpolation}get noData(){return this.layer.noData}get noDataInterpretation(){return this.layer.noDataInterpretation}writeLercVersion(i,o,e){this.format==="lerc"&&this.layer.version>=10.5&&(o[e]=i)}get version(){const i=this.layer;return i.commitProperty("bandIds"),i.commitProperty("format"),i.commitProperty("compressionQuality"),i.commitProperty("compressionTolerance"),i.commitProperty("interpolation"),i.commitProperty("noData"),i.commitProperty("noDataInterpretation"),i.commitProperty("mosaicRule"),i.commitProperty("rasterFunction"),i.commitProperty("adjustAspectRatio"),i.commitProperty("pixelFilter"),i.commitProperty("definitionExpression"),i.commitProperty("multidimensionalSubset"),(this._get("version")||0)+1}set version(i){this._set("version",i)}get mosaicRule(){const i=this.layer;let o=i.mosaicRule;const e=i.definitionExpression;return o?e&&e!==o.where&&(o=o.clone(),o.where=e):e&&(o=new H({where:e})),o}get rasterFunction(){var a,u;const i=this.layer;let{rasterFunction:o}=i;const e=i.pixelFilter,t=!i.format||i.format.includes("jpg")||i.format.includes("png");o=this._addResampleRasterFunction(o);const s=(a=i.multidimensionalSubset)==null?void 0:a.areaOfInterest;return s&&(o=this._addClipFunction(o,s)),t&&!e&&((u=i.renderer)==null?void 0:u.type)!=="vector-field"&&(o=this.combineRendererWithRenderingRule(o)),o}combineRendererWithRenderingRule(i){const o=this.layer,{rasterInfo:e,renderer:t}=o;return i=i||o.rasterFunction,!t||!vt(t)?i:We(Vi(t,{rasterAttributeTable:e.attributeTable,pixelType:e.pixelType,dataType:e.dataType,bandNames:e.bandInfos.map(({name:s})=>s),convertColorRampToColormap:o.version<10.6,convertToRFT:!!(i!=null&&i.rasterFunctionDefinition),bandCount:e.bandCount}),i)}_addResampleRasterFunction(i){var s;if(((s=this.layer.renderer)==null?void 0:s.type)!=="vector-field"||(i==null?void 0:i.functionName)==="Resample")return i;const o=this.layer.serviceDataType==="esriImageServiceDataTypeVector-UV"?7:10,e=this.layer.serviceRasterInfo.pixelSize;let t=new w({functionName:"Resample",functionArguments:{ResamplingType:o,InputCellSize:e}});return t=i!=null&&i.rasterFunctionDefinition?new w({rasterFunctionDefinition:Z(t)}):t,We(t,i)}_addClipFunction(i,o){const e=new w({functionName:"Clip",functionArguments:{ClippingGeometry:o.toJSON(),ClippingType:1}});return We(e,i)}};n([l()],_.prototype,"layer",void 0),n([l({json:{write:!0}})],_.prototype,"adjustAspectRatio",null),n([P("adjustAspectRatio")],_.prototype,"writeAdjustAspectRatio",null),n([l({json:{write:!0}})],_.prototype,"bandIds",null),n([l({json:{write:!0}})],_.prototype,"compression",void 0),n([l({json:{write:!0}})],_.prototype,"compressionQuality",null),n([P("compressionQuality")],_.prototype,"writeCompressionQuality",null),n([l({json:{write:!0}})],_.prototype,"compressionTolerance",null),n([P("compressionTolerance")],_.prototype,"writeCompressionTolerance",null),n([l({json:{write:!0}})],_.prototype,"format",null),n([l({type:String,json:{read:{reader:oe.read},write:{writer:oe.write}}})],_.prototype,"interpolation",null),n([l({json:{write:!0}})],_.prototype,"noData",null),n([l({type:String,json:{read:{reader:Ie.read},write:{writer:Ie.write}}})],_.prototype,"noDataInterpretation",null),n([l({json:{write:!0}})],_.prototype,"pixelType",void 0),n([l({json:{write:!0}})],_.prototype,"lercVersion",void 0),n([P("lercVersion")],_.prototype,"writeLercVersion",null),n([l({type:Number})],_.prototype,"version",null),n([l({json:{write:!0}})],_.prototype,"mosaicRule",null),n([l({json:{write:!0,name:"renderingRule"}})],_.prototype,"rasterFunction",null),_=n([F("esri.layers.mixins.ExportImageServiceParameters")],_);let fe=class extends z{constructor(i){super(i),this.north=null,this.up=null,this.spatialReference=null}};n([l({type:Number,json:{write:!0}})],fe.prototype,"north",void 0),n([l({type:Number,json:{write:!0}})],fe.prototype,"up",void 0),n([l({type:he,json:{write:!0}})],fe.prototype,"spatialReference",void 0),fe=n([F("esri.rest.support.ImageAngleResult")],fe);const zi=fe;let se=class extends z{constructor(){super(...arguments),this.value=null,this.displayValue=null,this.uncertainty=null}};n([l({type:Number,json:{read:!0,write:!0}})],se.prototype,"value",void 0),n([l({type:String,json:{read:!0,write:!0}})],se.prototype,"displayValue",void 0),n([l({type:Number,json:{read:!0,write:!0}})],se.prototype,"uncertainty",void 0),se=n([F("esri.rest.support.ImageMeasureResultValue")],se);let we=class extends se{constructor(){super(...arguments),this.unit=null}};n([l({type:String,json:{read:le.read,write:le.write}})],we.prototype,"unit",void 0),we=n([F("esri.rest.support.ImageMeasureResultLengthValue")],we);let Oe=class extends se{constructor(){super(...arguments),this.unit=null}};n([l({type:String,json:{read:$e.read,write:$e.write}})],Oe.prototype,"unit",void 0),Oe=n([F("esri.rest.support.ImageMeasureResultAreaValue")],Oe);let De=class extends se{constructor(){super(...arguments),this.unit=null}};n([l({type:String,json:{read:Me.read,write:Me.write}})],De.prototype,"unit",void 0),De=n([F("esri.rest.support.ImageMeasureResultAngleValue")],De);let ae=class extends z{constructor(){super(...arguments),this.name=null,this.sensorName=null}};n([l({type:String,json:{read:!0,write:!0}})],ae.prototype,"name",void 0),n([l({type:String,json:{read:!0,write:!0}})],ae.prototype,"sensorName",void 0),ae=n([F("esri.rest.support.BaseImageMeasureResult")],ae);let Fe=class extends ae{constructor(){super(...arguments),this.area=null,this.perimeter=null}};n([l({type:Oe,json:{read:!0,write:!0}})],Fe.prototype,"area",void 0),n([l({type:we,json:{read:!0,write:!0}})],Fe.prototype,"perimeter",void 0),Fe=n([F("esri.rest.support.ImageAreaResult")],Fe);const Gi=Fe;let Re=class extends ae{constructor(){super(...arguments),this.distance=null,this.azimuthAngle=null,this.elevationAngle=null}};n([l({type:we,json:{read:!0,write:!0}})],Re.prototype,"distance",void 0),n([l({type:De,json:{read:!0,write:!0}})],Re.prototype,"azimuthAngle",void 0),n([l({type:De,json:{read:!0,write:!0}})],Re.prototype,"elevationAngle",void 0),Re=n([F("esri.rest.support.ImageDistanceResult")],Re);const Hi=Re;let Ce=class extends ae{constructor(){super(...arguments),this.height=null}};n([l({type:we,json:{read:!0,write:!0}})],Ce.prototype,"height",void 0),Ce=n([F("esri.rest.support.ImageHeightResult")],Ce);const Ui=Ce;let k=class extends z{constructor(){super(...arguments),this.catalogItemVisibilities=null,this.catalogItems=null,this.location=null,this.name=null,this.objectId=null,this.processedValues=null,this.properties=null,this.value=null}};n([l({json:{write:!0}})],k.prototype,"catalogItemVisibilities",void 0),n([l({type:dt,json:{write:!0}})],k.prototype,"catalogItems",void 0),n([l({type:L,json:{write:!0}})],k.prototype,"location",void 0),n([l({json:{write:!0}})],k.prototype,"name",void 0),n([l({json:{write:!0}})],k.prototype,"objectId",void 0),n([l({json:{write:!0}})],k.prototype,"processedValues",void 0),n([l({json:{write:!0}})],k.prototype,"properties",void 0),n([l({json:{write:!0}})],k.prototype,"value",void 0),k=n([F("esri.rest.support.ImageIdentifyResult")],k);const Bi=k;let Ve=class extends z{constructor(){super(...arguments),this.geometries=null}};n([l({json:{write:!0}})],Ve.prototype,"geometries",void 0),Ve=n([F("esri.rest.support.ImagePixelLocationResult")],Ve);const Qi=Ve;let Ae=class extends ae{constructor(){super(...arguments),this.point=null}};n([l({type:L,json:{name:"point.value",read:!0,write:!0}})],Ae.prototype,"point",void 0),Ae=n([F("esri.rest.support.ImagePointResult")],Ae);const ki=Ae;let Y=class extends z{constructor(){super(...arguments),this.attributes=null,this.location=null,this.locationId=null,this.rasterId=null,this.resolution=null,this.pixelValue=null}};n([l({json:{write:!0}})],Y.prototype,"attributes",void 0),n([l({type:L,json:{write:!0}})],Y.prototype,"location",void 0),n([l({json:{write:!0}})],Y.prototype,"locationId",void 0),n([l({json:{write:!0}})],Y.prototype,"rasterId",void 0),n([l({json:{write:!0}})],Y.prototype,"resolution",void 0),n([l({json:{write:!0}})],Y.prototype,"pixelValue",void 0),Y=n([F("esri.rest.support.ImageSample")],Y);const Wi=Y;let je=class extends z{constructor(){super(...arguments),this.samples=null}};n([l({type:[Wi],json:{write:!0}})],je.prototype,"samples",void 0),je=n([F("esri.rest.support.ImageSampleResult")],je);const Ki=je;function xt(r){const i=r==null?void 0:r.time;if(i&&(i.start!=null||i.end!=null)){const o=[];i.start!=null&&o.push(i.start),i.end==null||o.includes(i.end)||o.push(i.end),r.time=o.join(",")}}async function Ft(r,i,o){const e=ie(r),t=i.geometry?[i.geometry]:[],s=await qe(t),a=i.toJSON();xt(a);const u=s==null?void 0:s[0];u!=null&&(a.geometry=u.toJSON());const p=ye({...e.query,f:"json",...a});return ge(p,o)}async function Zi(r,i,o){var p,m,c;const e=i.toJSON();e.angleName!=null&&(e.angleName=e.angleName.join(",")),(m=(p=i==null?void 0:i.point)==null?void 0:p.spatialReference)!=null&&m.imageCoordinateSystem&&(e.point.spatialReference=ze(i.point.spatialReference)),(c=i==null?void 0:i.spatialReference)!=null&&c.imageCoordinateSystem&&(e.spatialReference=It(i.spatialReference));const t=ie(r),s=ye({...t.query,f:"json",...e}),a=ge(s,o),{data:u}=await N(`${t.path}/computeAngles`,a);return u.spatialReference=u.spatialReference?u.spatialReference.geodataXform!=null?new he({wkid:0,imageCoordinateSystem:u.spatialReference}):he.fromJSON(u.spatialReference):null,u.north==="NaN"&&(u.north=null),u.up==="NaN"&&(u.up=null),new zi(u)}async function Xi(r,i,o){var m;const e=i.toJSON(),{geometries:t}=i;if(t)for(let c=0;c<t.length;c++)(m=t[c].spatialReference)!=null&&m.imageCoordinateSystem&&(e.geometries.geometries[c].spatialReference=ze(t[c].spatialReference));const s=ie(r),a=ye({...s.query,f:"json",...e}),u=ge(a,o),{data:p}=await N(`${s.path}/computePixelLocation`,u);return Qi.fromJSON(p)}async function Yi(r,i,o){const e=await Ft(r,i,o),t=ie(r),{data:s}=await N(`${t.path}/computeStatisticsHistograms`,e),{statistics:a}=s;return a!=null&&a.length&&a.forEach(u=>{u.avg=u.mean,u.stddev=u.standardDeviation}),{statistics:a,histograms:s.histograms}}async function er(r,i,o){const e=await Ft(r,i,o),t=ie(r),{data:s}=await N(`${t.path}/computeHistograms`,e);return{histograms:s.histograms}}async function tr(r,i,o){var d,y;const e=i.toJSON();xt(e),(d=e.outFields)!=null&&d.length&&(e.outFields=e.outFields.join(","));const t=await qe(i.geometry),s=t==null?void 0:t[0];s!=null&&(e.geometry=s.toJSON());const a=ie(r),u=ye({...a.query,f:"json",...e}),p=ge(u,o),{data:m}=await N(`${a.path}/getSamples`,p),c=(y=m==null?void 0:m.samples)==null?void 0:y.map(R=>{const f=R.value==="NaN"||R.value===""?null:R.value.split(" ").map(v=>Number(v));return{...R,pixelValue:f}});return Ki.fromJSON({samples:c})}async function pt(r,i,o){const e=ie(r),t=i.geometry?[i.geometry]:[];return qe(t).then(s=>{const a=i.toJSON(),u=s==null?void 0:s[0];u!=null&&(a.geometry=JSON.stringify(u.toJSON()));const p=ye({...e.query,f:"json",...a}),m=ge(p,o);return N(e.path+"/identify",m)}).then(s=>Bi.fromJSON(s.data))}async function ir(r,i,o){const e=await Le(r,i,[i.fromGeometry,i.toGeometry],o);return Ui.fromJSON(e)}async function rr(r,i,o){const e=await Le(r,i,[i.geometry],o);return Gi.fromJSON(e)}async function sr(r,i,o){const e=await Le(r,i,[i.geometry],o);return ki.fromJSON(e)}async function nr(r,i,o){const e=await Le(r,i,[i.fromGeometry,i.toGeometry],o);return Hi.fromJSON(e)}async function Le(r,i,o,e){const t=ie(r),s=await qe(o),a=i.toJSON();s[0]!=null&&(a.fromGeometry=JSON.stringify(ct(s[0]))),s[1]!=null&&(a.toGeometry=JSON.stringify(ct(s[1])));const u=ye({...t.query,f:"json",...a}),p=ge(u,e),{data:m}=await N(t.path+"/measure",p);return m}function ct(r){var o;const i=r.toJSON();return(o=r.spatialReference)!=null&&o.imageCoordinateSystem&&(i.spatialReference=ze(r.spatialReference)),i}function ze(r){const{imageCoordinateSystem:i}=r;if(i){const{id:o,referenceServiceName:e}=i;return o!=null?e?{icsid:o,icsns:e}:{icsid:o}:{ics:i}}return r.toJSON()}function It(r,i){if(!r.imageCoordinateSystem)return Ke(r);const o=ze(r),{icsid:e,icsns:t}=o;return e==null||t!=null&&!(i!=null&&i.toLowerCase().includes("/"+t.toLowerCase()+"/"))?JSON.stringify(o):`0:${e}`}async function ar(r,i,o){var $,V;const e=ie(r),t=ye({...e==null?void 0:e.query,f:"json"}),s=ge(t,o),a=`${e==null?void 0:e.path}/${i}/info`,u=N(`${a}`,s),p=N(`${a}/keyProperties`,s),m=await Promise.allSettled([u,p]),c=m[0].status==="fulfilled"?m[0].value.data:null,d=m[1].status==="fulfilled"?m[1].value.data:null;let y=null;($=c.statistics)!=null&&$.length&&(y=c.statistics.map(x=>({min:x[0],max:x[1],avg:x[2],stddev:x[3]})));const R=Ne.fromJSON(c.extent),f=Math.ceil(R.width/c.pixelSizeX-.1),v=Math.ceil(R.height/c.pixelSizeY-.1),h=R.spatialReference,g=new L({x:c.pixelSizeX,y:c.pixelSizeY,spatialReference:h}),b=(V=c.histograms)!=null&&V.length?c.histograms:null,T=new xi({origin:c.origin,blockWidth:c.blockWidth,blockHeight:c.blockHeight,firstPyramidLevel:c.firstPyramidLevel,maximumPyramidLevel:c.maxPyramidLevel});return new Rt({width:f,height:v,bandCount:c.bandCount,extent:R,spatialReference:h,pixelSize:g,pixelType:c.pixelType.toLowerCase(),statistics:y,histograms:b,keyProperties:d,storageInfo:T})}var Ze;let me=Ze=class extends z{constructor(r){super(r),this.angleNames=null,this.point=null,this.spatialReference=null,this.rasterId=null}clone(){return new Ze(B({angleNames:this.angleNames,point:this.point,spatialReference:this.spatialReference,rasterId:this.rasterId}))}};n([l({type:[String],json:{name:"angleName",write:!0}})],me.prototype,"angleNames",void 0),n([l({type:L,json:{write:!0}})],me.prototype,"point",void 0),n([l({type:he,json:{write:!0}})],me.prototype,"spatialReference",void 0),n([l({type:Ee,json:{write:!0}})],me.prototype,"rasterId",void 0),me=Ze=n([F("esri.rest.support.ImageAngleParameters")],me);const or=me,U=new Tt({esriMensurationPoint:"point",esriMensurationCentroid:"centroid",esriMensurationDistanceAndAngle:"distance-and-angle",esriMensurationAreaAndPerimeter:"area-and-perimeter",esriMensurationHeightFromBaseAndTop:"base-and-top",esriMensurationHeightFromBaseAndTopShadow:"base-and-top-shadow",esriMensurationHeightFromTopAndTopShadow:"top-and-top-shadow",esriMensurationPoint3D:"point-3D",esriMensurationCentroid3D:"centroid-3D",esriMensurationDistanceAndAngle3D:"distance-and-angle-3D",esriMensurationAreaAndPerimeter3D:"area-and-perimeter-3D"});let W=class extends z{constructor(){super(...arguments),this.type=null,this.measureOperation=null,this.mosaicRule=null,this.pixelSize=null,this.raster=void 0}};n([l()],W.prototype,"type",void 0),n([l({type:U.apiValues,json:{read:U.read,write:U.write}})],W.prototype,"measureOperation",void 0),n([l({type:H,json:{write:!0}})],W.prototype,"mosaicRule",void 0),n([l({type:L,json:{write:!0}})],W.prototype,"pixelSize",void 0),n([l({json:{write:!0}})],W.prototype,"raster",void 0),W=n([F("esri.rest.support.BaseImageMeasureParameters")],W);var Xe;let ee=Xe=class extends W{constructor(){super(...arguments),this.type="area-perimeter",this.geometry=null,this.is3D=!1,this.linearUnit="meters",this.areaUnit="square-meters"}writeGeometry(r,i,o){r!=null&&(i.geometryType=Se(r),i[o]=r.toJSON())}get measureOperation(){return this.is3D?"area-and-perimeter-3D":"area-and-perimeter"}clone(){return new Xe(B({geometry:this.geometry,is3D:this.is3D,linearUnit:this.linearUnit,areaUnit:this.areaUnit,mosaicRule:this.mosaicRule,pixelSize:this.pixelSize,raster:this.raster}))}};n([l({types:nt,json:{name:"fromGeometry",read:!0,write:!0}})],ee.prototype,"geometry",void 0),n([P("geometry")],ee.prototype,"writeGeometry",null),n([l({type:U.apiValues,json:{write:U.write}})],ee.prototype,"measureOperation",null),n([l({json:{read:!0}})],ee.prototype,"is3D",void 0),n([l({type:String,json:{read:le.read,write:le.write}})],ee.prototype,"linearUnit",void 0),n([l({type:String,json:{read:$e.read,write:$e.write}})],ee.prototype,"areaUnit",void 0),ee=Xe=n([F("esri.rest.support.ImageAreaParameters")],ee);const lr=ee;var Ye;let K=Ye=class extends W{constructor(){super(...arguments),this.type="distance-angle",this.fromGeometry=null,this.toGeometry=null,this.is3D=!1,this.linearUnit="meters",this.angularUnit="degrees"}writeFromGeometry(r,i,o){r!=null&&(i.geometryType=Se(r),i[o]=r.toJSON())}get measureOperation(){return this.is3D?"distance-and-angle-3D":"distance-and-angle"}clone(){return new Ye(B({fromGeometry:this.fromGeometry,toGeometry:this.toGeometry,is3D:this.is3D,linearUnit:this.linearUnit,angularUnit:this.angularUnit,mosaicRule:this.mosaicRule,pixelSize:this.pixelSize,raster:this.raster}))}};n([l({type:L,json:{read:!0,write:!0}})],K.prototype,"fromGeometry",void 0),n([P("fromGeometry")],K.prototype,"writeFromGeometry",null),n([l({type:L,json:{read:!0,write:!0}})],K.prototype,"toGeometry",void 0),n([l({type:U.apiValues,json:{write:U.write}})],K.prototype,"measureOperation",null),n([l({json:{read:!0}})],K.prototype,"is3D",void 0),n([l({type:String,json:{read:le.read,write:le.write}})],K.prototype,"linearUnit",void 0),n([l({type:String,json:{read:Me.read,write:Me.write}})],K.prototype,"angularUnit",void 0),K=Ye=n([F("esri.rest.support.ImageDistanceParameters")],K);const ur=K;var et;let te=et=class extends W{constructor(){super(...arguments),this.type="height",this.fromGeometry=null,this.toGeometry=null,this.operationType="base-and-top",this.linearUnit="meters"}writeFromGeometry(r,i,o){r!=null&&(i.geometryType=Se(r),i[o]=r.toJSON())}get measureOperation(){return this.operationType}clone(){return new et(B({fromGeometry:this.fromGeometry,toGeometry:this.toGeometry,operationType:this.operationType,linearUnit:this.linearUnit,mosaicRule:this.mosaicRule,pixelSize:this.pixelSize,raster:this.raster}))}};n([l({type:L,json:{read:!0}})],te.prototype,"fromGeometry",void 0),n([P("fromGeometry")],te.prototype,"writeFromGeometry",null),n([l({type:L,json:{read:!0,write:!0}})],te.prototype,"toGeometry",void 0),n([l({type:U.apiValues,json:{write:U.write}})],te.prototype,"measureOperation",null),n([l({json:{read:!0}})],te.prototype,"operationType",void 0),n([l({type:String,json:{read:le.read,write:le.write}})],te.prototype,"linearUnit",void 0),te=et=n([F("esri.rest.support.ImageHeightParameters")],te);const pr=te;var tt;let D=tt=class extends z{constructor(){super(...arguments),this.geometry=null,this.rasterFunctions=null,this.pixelSize=null,this.returnGeometry=!0,this.returnCatalogItems=!0,this.returnPixelValues=!0,this.maxItemCount=null,this.timeExtent=null,this.raster=void 0,this.viewId=void 0,this.processAsMultidimensional=!1}writeGeometry(r,i,o){r!=null&&(i.geometryType=Se(r),i[o]=JSON.stringify(r.toJSON()))}set mosaicRule(r){let i=r;i!=null&&i.mosaicMethod&&(i=H.fromJSON({...i.toJSON(),mosaicMethod:i.mosaicMethod,mosaicOperation:i.mosaicOperation})),this._set("mosaicRule",i)}writeMosaicRule(r,i,o){r!=null&&(i[o]=JSON.stringify(r.toJSON()))}get renderingRule(){return be(ne.getLogger(this),"renderingRule",{replacement:"rasterFunction",version:"4.27",warnOnce:!0}),this._get("rasterFunction")}set renderingRule(r){be(ne.getLogger(this),"renderingRule",{replacement:"rasterFunction",version:"4.27",warnOnce:!0}),this._set("rasterFunction",r)}get renderingRules(){return be(ne.getLogger(this),"renderingRules",{replacement:"rasterFunctions",version:"4.27",warnOnce:!0}),this._get("rasterFunctions")}set renderingRules(r){be(ne.getLogger(this),"renderingRules",{replacement:"rasterFunctions",version:"4.27",warnOnce:!0}),this._set("rasterFunctions",r)}set rasterFunction(r){let i=r;i!=null&&i.rasterFunction&&(i=w.fromJSON({...i.toJSON(),rasterFunction:i.rasterFunction,rasterFunctionArguments:i.rasterFunctionArguments})),this._set("rasterFunction",i)}writeRasterFunction(r,i,o){r!=null&&(i[o]=JSON.stringify(r.toJSON())),r.rasterFunctionDefinition&&(i[o]=JSON.stringify(r.rasterFunctionDefinition))}writeRasterFunctions(r,i,o){r!=null&&(i[o]=JSON.stringify(r.map(e=>e.rasterFunctionDefinition||e.toJSON())))}writePixelSize(r,i,o){r!=null&&(i[o]=JSON.stringify(r))}writeTimeExtent(r,i,o){if(r!=null){const e=r.start!=null?r.start.getTime():null,t=r.end!=null?r.end.getTime():null;i[o]=e!=null?t!=null?`${e},${t}`:`${e}`:null}}clone(){return new tt(B({geometry:this.geometry,mosaicRule:this.mosaicRule,rasterFunction:this.rasterFunction,rasterFunctions:this.rasterFunctions,pixelSize:this.pixelSize,returnGeometry:this.returnGeometry,returnCatalogItems:this.returnCatalogItems,returnPixelValues:this.returnPixelValues,maxItemCount:this.maxItemCount,processAsMultidimensional:this.processAsMultidimensional,raster:this.raster,viewId:this.viewId,timeExtent:this.timeExtent}))}};n([l({json:{write:!0}})],D.prototype,"geometry",void 0),n([P("geometry")],D.prototype,"writeGeometry",null),n([l({type:H,json:{write:!0}})],D.prototype,"mosaicRule",null),n([P("mosaicRule")],D.prototype,"writeMosaicRule",null),n([l({type:w})],D.prototype,"renderingRule",null),n([l({type:[w]})],D.prototype,"renderingRules",null),n([l({type:w,json:{write:!0,name:"renderingRule"}})],D.prototype,"rasterFunction",null),n([P("rasterFunction")],D.prototype,"writeRasterFunction",null),n([l({type:[w],json:{write:!0,name:"renderingRules"}})],D.prototype,"rasterFunctions",void 0),n([P("rasterFunctions")],D.prototype,"writeRasterFunctions",null),n([l({type:L,json:{write:!0}})],D.prototype,"pixelSize",void 0),n([P("pixelSize")],D.prototype,"writePixelSize",null),n([l({type:Boolean,json:{write:!0}})],D.prototype,"returnGeometry",void 0),n([l({type:Boolean,json:{write:!0}})],D.prototype,"returnCatalogItems",void 0),n([l({type:Boolean,json:{write:!0}})],D.prototype,"returnPixelValues",void 0),n([l({type:Number,json:{write:!0}})],D.prototype,"maxItemCount",void 0),n([l({type:ht,json:{write:{target:"time"}}})],D.prototype,"timeExtent",void 0),n([P("timeExtent")],D.prototype,"writeTimeExtent",null),n([l({json:{write:!0}})],D.prototype,"raster",void 0),n([l({json:{write:!0}})],D.prototype,"viewId",void 0),n([l({type:Boolean,json:{write:!0}})],D.prototype,"processAsMultidimensional",void 0),D=tt=n([F("esri.rest.support.ImageIdentifyParameters")],D);const mt=D;var it;let ve=it=class extends z{constructor(){super(...arguments),this.geometries=null,this.rasterId=null}writeGeometry(r,i,o){i.geometries={geometryType:"esriGeometryPoint",geometries:r.map(e=>e.toJSON())}}clone(){var r;return new it({geometries:((r=this.geometries)==null?void 0:r.map(i=>i.clone()))??[],rasterId:this.rasterId})}};n([l({type:[L],json:{write:!0}})],ve.prototype,"geometries",void 0),n([P("geometries")],ve.prototype,"writeGeometry",null),n([l({type:Ee,json:{write:!0}})],ve.prototype,"rasterId",void 0),ve=it=n([F("esri.rest.support.ImagePixelLocationParameters")],ve);const cr=ve;var rt;let de=rt=class extends W{constructor(){super(...arguments),this.type="point",this.geometry=null,this.is3D=!1}writeGeometry(r,i,o){r!=null&&(i.geometryType=Se(r),i[o]=r.toJSON())}get measureOperation(){const{is3D:r,geometry:i}=this;return i.type==="point"?r?"point-3D":"point":r?"centroid-3D":"centroid"}clone(){return new rt(B({geometry:this.geometry,is3D:this.is3D,mosaicRule:this.mosaicRule,pixelSize:this.pixelSize,raster:this.raster}))}};n([l({types:nt,json:{name:"fromGeometry",read:yt}})],de.prototype,"geometry",void 0),n([P("geometry")],de.prototype,"writeGeometry",null),n([l({type:U.apiValues,json:{read:U.read,write:U.write}})],de.prototype,"measureOperation",null),n([l({json:{read:!0}})],de.prototype,"is3D",void 0),de=rt=n([F("esri.rest.support.ImagePointParameters")],de);const mr=de;var st;let j=st=class extends z{constructor(){super(...arguments),this.geometry=null,this.interpolation="nearest",this.mosaicRule=null,this.outFields=null,this.pixelSize=null,this.returnFirstValueOnly=!0,this.sampleDistance=null,this.sampleCount=null,this.sliceId=null,this.timeExtent=null}writeGeometry(r,i,o){r!=null&&(i.geometryType=Se(r),i[o]=r.toJSON())}set locations(r){if(r!=null&&r.length){const i=new Pt({spatialReference:r[0].spatialReference});i.points=r.map(o=>[o.x,o.y]),this._set("locations",r),this.geometry=i}}clone(){return new st(B({geometry:this.geometry,locations:this.locations,interpolation:this.interpolation,mosaicRule:this.mosaicRule,outFields:this.outFields,raster:this.raster,returnFirstValueOnly:this.returnFirstValueOnly,sampleDistance:this.sampleDistance,sampleCount:this.sampleCount,sliceId:this.sliceId,pixelSize:this.pixelSize,timeExtent:this.timeExtent}))}};n([l({types:nt,json:{read:yt}})],j.prototype,"geometry",void 0),n([P("geometry")],j.prototype,"writeGeometry",null),n([l()],j.prototype,"locations",null),n([l({type:String,json:{type:oe.jsonValues,read:oe.read,write:oe.write}})],j.prototype,"interpolation",void 0),n([l({type:H,json:{write:!0}})],j.prototype,"mosaicRule",void 0),n([l({type:[String],json:{write:!0}})],j.prototype,"outFields",void 0),n([l({type:L,json:{write:!0}})],j.prototype,"pixelSize",void 0),n([l({type:String,json:{write:!0}})],j.prototype,"raster",void 0),n([l({type:Boolean,json:{write:!0}})],j.prototype,"returnFirstValueOnly",void 0),n([l({type:Number,json:{write:!0}})],j.prototype,"sampleDistance",void 0),n([l({type:Number,json:{write:!0}})],j.prototype,"sampleCount",void 0),n([l({type:Number,json:{write:!0}})],j.prototype,"sliceId",void 0),n([l({type:ht,json:{read:{source:"time"},write:{target:"time"}}})],j.prototype,"timeExtent",void 0),j=st=n([F("esri.rest.support.ImageSampleParameters")],j);const dr=j,hr=new Set(["png","png8","png24","png32","jpg","bmp","gif","jpgpng","lerc","tiff"]),yr=jt($t,{min:0,max:255});function gr(r){if(!r)return null;const i=JSON.stringify(r).match(/"rasterFunction":"(.*?")/gi),o=i==null?void 0:i.map(e=>e.replace('"rasterFunction":"',"").replace('"',""));return o?o.join("/"):null}const fr=r=>{let i=class extends r{constructor(){super(...arguments),this._functionRasterInfos={},this._rasterJobHandler={instance:null,refCount:0,connectionPromise:null},this._cachedRendererJson=null,this._serviceSupportsMosaicRule=null,this._rasterAttributeTableFieldPrefix="Raster.",this.adjustAspectRatio=null,this.bandIds=void 0,this.capabilities=null,this.compressionQuality=void 0,this.compressionTolerance=.01,this.copyright=null,this.defaultMosaicRule=null,this.definitionExpression=null,this.exportImageServiceParameters=null,this.rasterInfo=null,this.fields=null,this.fullExtent=null,this.hasMultidimensions=!1,this.imageMaxHeight=4100,this.imageMaxWidth=4100,this.interpolation=void 0,this.minScale=0,this.maxScale=0,this.multidimensionalInfo=null,this.multidimensionalSubset=null,this.noData=null,this.noDataInterpretation=void 0,this.objectIdField=null,this.geometryType="polygon",this.typeIdField=null,this.types=[],this.pixelFilter=null,this.raster=void 0,this.sourceType=null,this.viewId=void 0,this.symbolizer=null,this.rasterFunctionInfos=null,this.serviceDataType=null,this.spatialReference=null,this.pixelType=null,this.serviceRasterInfo=null,this.sourceJSON=null,this.url=null,this.version=void 0}initialize(){this._set("exportImageServiceParameters",new _({layer:this}))}readServiceSupportsMosaicRule(e,t){return this._isMosaicRuleSupported(t)}get _rasterFunctionNamesIndex(){const e=new Map;return!this.rasterFunctionInfos||this.rasterFunctionInfos!=null&&this.rasterFunctionInfos.length<1||this.rasterFunctionInfos!=null&&this.rasterFunctionInfos.forEach(t=>{e.set(t.name.toLowerCase().replaceAll(/ /gi,"_"),t.name)}),e}readBandIds(e,t){if(Array.isArray(e)&&e.length>0&&e.every(s=>typeof s=="number"))return e}readCapabilities(e,t){return this._readCapabilities(t)}writeCompressionQuality(e,t,s){e!=null&&this.format!=="lerc"&&(t[s]=e)}writeCompressionTolerance(e,t,s){this.format==="lerc"&&e!=null&&(t[s]=e)}readDefaultMosaicRule(e,t){return this._serviceSupportsMosaicRule?H.fromJSON(t):null}get fieldsIndex(){return this.fields?new Ot(this.fields):null}set format(e){e&&hr.has(e.toLowerCase())&&this._set("format",e.toLowerCase())}readFormat(e,t){return t.serviceDataType==="esriImageServiceDataTypeVector-UV"||t.serviceDataType==="esriImageServiceDataTypeVector-MagDir"||this.pixelFilter!=null?"lerc":"jpgpng"}readMinScale(e,t){return t.minLOD!=null&&t.maxLOD!=null?e:0}readMaxScale(e,t){return t.minLOD!=null&&t.maxLOD!=null?e:0}set mosaicRule(e){let t=e;t!=null&&t.mosaicMethod&&(t=H.fromJSON({...t.toJSON(),mosaicMethod:t.mosaicMethod,mosaicOperation:t.mosaicOperation})),this._set("mosaicRule",t)}readMosaicRule(e,t){const s=e||t.mosaicRule;return s?H.fromJSON(s):this._isMosaicRuleSupported(t)?H.fromJSON(t):null}writeMosaicRule(e,t,s){let a=this.mosaicRule;const u=this.definitionExpression;a?u&&u!==a.where&&(a=a.clone(),a.where=u):u&&(a=new H({where:u})),this._isValidCustomizedMosaicRule(a)&&(t[s]=a.toJSON())}writeNoData(e,t,s){e!=null&&typeof e=="number"&&(t[s]=yr(e))}readObjectIdField(e,t){if(!e){const s=t.fields.find(a=>a.type==="esriFieldTypeOID"||a.type==="oid");e=s==null?void 0:s.name}return e}get parsedUrl(){return Ct(this.url)}readSourceType(e,t){return this._isMosaicDataset(t)?"mosaic-dataset":"raster-dataset"}set renderer(e){this.loaded&&(e=this._configRenderer(e)),this._set("renderer",e)}readRenderer(e,t,s){var p,m;const a=(m=(p=t==null?void 0:t.layerDefinition)==null?void 0:p.drawingInfo)==null?void 0:m.renderer,u=ni(a,s);return u==null?null:(u.type==="vector-field"&&t.symbolTileSize&&!a.symbolTileSize&&(u.symbolTileSize=t.symbolTileSize),vt(u)||ne.getLogger(this).warn("ArcGISImageService","Imagery layer doesn't support given renderer type."),u)}writeRenderer(e,t,s){t.layerDefinition=t.layerDefinition||{},t.layerDefinition.drawingInfo=t.layerDefinition.drawingInfo||{},t.layerDefinition.drawingInfo.renderer=e.toJSON(),e.type==="vector-field"&&(t.symbolTileSize=e.symbolTileSize)}get rasterFields(){var m;const e=this._rasterAttributeTableFieldPrefix,t=new ce({name:"Raster.ItemPixelValue",alias:"Item Pixel Value",domain:null,editable:!1,length:50,type:"string"}),s=new ce({name:"Raster.ServicePixelValue",alias:"Service Pixel Value",domain:null,editable:!1,length:50,type:"string"}),a=new ce({name:"Raster.ServicePixelValue.Raw",alias:"Raw Service Pixel Value",domain:null,editable:!1,length:50,type:"string"});let u=this.fields?B(this.fields):[];u.push(s),(m=this.capabilities)!=null&&m.operations.supportsQuery&&this.fields&&this.fields.length>0&&u.push(t),this.version>=10.4&&this.rasterFunctionInfos!=null&&this.rasterFunctionInfos.some(c=>c.name.toLowerCase()==="none")&&u.push(a),this.rasterFunctionInfos!=null&&this.rasterFunctionInfos.filter(c=>c.name.toLowerCase()!=="none").forEach(c=>{u.push(new ce({name:"Raster.ServicePixelValue."+c.name,alias:c.name,domain:null,editable:!1,length:50,type:"string"}))}),this._isVectorDataSet()&&(u.push(new ce({name:"Raster.Magnitude",alias:"Magnitude",domain:null,editable:!1,type:"double"})),u.push(new ce({name:"Raster.Direction",alias:"Direction",domain:null,editable:!1,type:"double"})));const{attributeTable:p}=this.rasterInfo??{};if(p!=null){const c=p.fields.filter(d=>d.type!=="esriFieldTypeOID"&&d.name.toLowerCase()!=="value").map(d=>{const y=B(d);return y.name=e+d.name,y});u=u.concat(c)}return u}get renderingRule(){return be(ne.getLogger(this),"renderingRule",{replacement:"rasterFunction",version:"4.27",warnOnce:!0}),this.rasterFunction}set renderingRule(e){be(ne.getLogger(this),"renderingRule",{replacement:"rasterFunction",version:"4.27",warnOnce:!0}),this._set("rasterFunction",e)}set rasterFunction(e){let t=e;t!=null&&t.rasterFunction&&(t=w.fromJSON({...t.toJSON(),rasterFunction:t.rasterFunction,rasterFunctionArguments:t.rasterFunctionArguments})),this._set("rasterFunction",t)}readRasterFunction(e,t){const s=t.rasterFunctionInfos;return t.renderingRule||s!=null&&s.length&&s[0].name!=="None"?this._isRFTJson(t.renderingRule)?w.fromJSON({rasterFunctionDefinition:t.renderingRule}):w.fromJSON(t.renderingRule||{rasterFunctionInfos:t.rasterFunctionInfos}):null}readSpatialReference(e,t){const s=e||t.extent.spatialReference;return s?he.fromJSON(s):null}readPixelType(e){return Ue.fromJSON(e)||e}writePixelType(e,t,s){this.serviceRasterInfo!=null&&this.pixelType===this.serviceRasterInfo.pixelType||(t[s]=Ue.toJSON(e))}readVersion(e,t){let s=t.currentVersion;return s||(s=t.hasOwnProperty("fields")||t.hasOwnProperty("timeInfo")?10:9.3),s}applyFilter(e){let t=e;return this.pixelFilter&&(t=this._clonePixelData(e),this.pixelFilter(t)),t}async applyRenderer(e,t){let s=e;const{renderer:a,symbolizer:u,pixelFilter:p,bandIds:m}=this;if(!this._isPicture()&&a&&u&&!p){const c=JSON.stringify(this._cachedRendererJson)!==JSON.stringify(a.toJSON()),d=this._rasterJobHandler.instance;if(d){c&&(u.bind(),await d.updateSymbolizer(u,t),this._cachedRendererJson=a.toJSON());const y=await d.symbolize({bandIds:m,...e},t);s={extent:e.extent,pixelBlock:y}}else s={extent:e.extent,pixelBlock:u.symbolize({bandIds:m,...e})}}return s}destroy(){this._shutdownJobHandler()}increaseRasterJobHandlerUsage(){this._rasterJobHandler.refCount++}decreaseRasterJobHandlerUsage(){this._rasterJobHandler.refCount--,this._rasterJobHandler.refCount<=0&&this._shutdownJobHandler()}async computeAngles(e,t){if(!(await this._fetchCapabilities(t==null?void 0:t.signal)).operations.supportsComputeAngles)throw new C("imagery-layer:compute-angles","this operation is not supported on the input image service");return e=G(or,e).clone(),Zi(this.url,e,this._getRequestOptions(t))}async computePixelSpaceLocations(e,t){if(!(await this._fetchCapabilities(t==null?void 0:t.signal)).operations.supportsComputePixelLocation)throw new C("imagery-layer:compute-pixel-space-locations","this operation is not supported on the input image service");return e=G(cr,e).clone(),Xi(this.url,e,this._getRequestOptions(t))}async computeHistograms(e,t){if(!(await this._fetchCapabilities(t==null?void 0:t.signal)).operations.supportsComputeHistograms)throw new C("imagery-layer:compute-histograms","this operation is not supported on the input image service");return e=G(Be,e).clone(),this._applyMosaicAndRenderingRules(e),er(this.url,e,this._getRequestOptions(t))}async computeStatisticsHistograms(e,t){if(!(await this._fetchCapabilities(t==null?void 0:t.signal)).operations.supportsComputeStatisticsHistograms)throw new C("imagery-layer:compute-statistics-histograms","this operation is not supported on the input image service");return e=G(Be,e).clone(),this._applyMosaicAndRenderingRules(e),Yi(this.url,e,this._getRequestOptions(t))}async measureHeight(e,t){const s=await this._fetchCapabilities(t==null?void 0:t.signal);if(!(e.operationType==="base-and-top"?s.mensuration.supportsHeightFromBaseAndTop:e.operationType==="base-and-top-shadow"?s.mensuration.supportsHeightFromBaseAndTopShadow:s.mensuration.supportsHeightFromTopAndTopShadow))throw new C("imagery-layer:measure-height","this operation is not supported on the input image service");return e=G(pr,e).clone(),this._applyMosaicAndRenderingRules(e),ir(this.url,e,this._getRequestOptions(t))}async measureAreaAndPerimeter(e,t){const s=await this._fetchCapabilities(t==null?void 0:t.signal);if(!(s.mensuration.supportsAreaAndPerimeter&&(!e.is3D||s.mensuration.supports3D)))throw new C("imagery-layer:measure-area-and-perimeter","this operation is not supported on the input image service");return e=G(lr,e).clone(),this._applyMosaicAndRenderingRules(e),rr(this.url,e,this._getRequestOptions(t))}async measureDistanceAndAngle(e,t){const s=await this._fetchCapabilities(t==null?void 0:t.signal);if(!(s.mensuration.supportsDistanceAndAngle&&(!e.is3D||s.mensuration.supports3D)))throw new C("imagery-layer:measure-distance-and-angle","this operation is not supported on the input image service");return e=G(ur,e).clone(),this._applyMosaicAndRenderingRules(e),nr(this.url,e,this._getRequestOptions(t))}async measurePointOrCentroid(e,t){const s=await this._fetchCapabilities(t==null?void 0:t.signal);if(!(s.mensuration.supportsPointOrCentroid&&(!e.is3D||s.mensuration.supports3D)))throw new C("imagery-layer:measure-point-or-centroid","this operation is not supported on the input image service");return e=G(mr,e).clone(),this._applyMosaicAndRenderingRules(e),sr(this.url,e,this._getRequestOptions(t))}getField(e){const{fieldsIndex:t}=this;return t!=null?t.get(e):void 0}getFieldDomain(e,t){const s=this.getField(e);return s?s.domain:null}async fetchImage(e,t,s,a={}){if(e==null||t==null||s==null)throw new C("imagery-layer:fetch-image","Insufficient parameters for requesting an image. A valid extent, width and height values are required.");if(this.renderer||this.symbolizer){const d=await this._generateRasterInfo(this.rasterFunction,{signal:a.signal});d&&(this.rasterInfo=d)}const u=this.getExportImageServiceParameters(e,t,s,a.timeExtent);if(u==null){if(a.requestAsImageElement&&this._canRequestImageElement(this.format)){const g=document.createElement("canvas");return g.width=t,g.height=s,a.returnImageBitmap?{imageBitmap:await ut(g,`${o(this.parsedUrl)}/exportImage`,a.signal)}:{imageOrCanvasElement:g}}const{bandIds:d,rasterInfo:y}=this,R=((d==null?void 0:d.length)||y.bandCount)??0,f=t*s,v=y.pixelType,h=[];for(let g=0;g<R;g++)h.push(ke.createEmptyBand(v,f));return{pixelData:{pixelBlock:new ke({width:t,height:s,pixels:h,mask:new Uint8Array(f),pixelType:v}),extent:e}}}const p=!!a.requestAsImageElement&&!this.pixelFilter,m=p&&!!a.returnImageBitmap,c={imageServiceParameters:u,imageProps:{extent:e,width:t,height:s,format:this.format},requestAsImageElement:p,returnImageBitmap:m,signal:a.signal};return this._requestArrayBuffer(c)}fetchKeyProperties(e){return N(o(this.parsedUrl)+"/keyProperties",{query:this._getQueryParams({renderingRule:this.version>=10.3?e==null?void 0:e.rasterFunction:null})}).then(t=>t.data)}fetchRasterAttributeTable(e){return this.version<10.1?Promise.reject(new C("#fetchRasterAttributeTable()","Failed to get rasterAttributeTable")):N(o(this.parsedUrl)+"/rasterAttributeTable",{query:this._getQueryParams({renderingRule:this.version>=10.3?e==null?void 0:e.rasterFunction:null})}).then(t=>dt.fromJSON(t.data))}getCatalogItemRasterInfo(e,t){const s={...t,query:this._getQueryParams()};return ar(o(this.parsedUrl),e,s)}async getCatalogItemICSInfo(e,t){var ue,pe,X,at,ot;const{data:s}=await N(o(this.parsedUrl)+"/"+e+"/info/ics",{query:this._getQueryParams(),...t}),a=s==null?void 0:s.ics;if(!a)return;let u=null;try{u=(await N(o(this.parsedUrl)+"/"+e+"/info",{query:this._getQueryParams(),...t})).data.extent}catch{}if(!u||!u.spatialReference)return{ics:a,icsToPixelTransform:null,icsExtent:null,northDirection:null};const p=this.version>=10.7?N(o(this.parsedUrl)+"/"+e+"/info/icstopixel",{query:this._getQueryParams(),...t}).then(S=>S.data).catch(()=>({})):{},m=u.spatialReference,c={geometries:JSON.stringify({geometryType:"esriGeometryEnvelope",geometries:[u]}),inSR:Ke(m),outSR:"0:"+e},d=N(o(this.parsedUrl)+"/project",{query:this._getQueryParams(c),...t}).then(S=>S.data).catch(()=>({})),y=5,R=(u.xmin+u.xmax)/2,f=(u.ymax-u.ymin)/(y+1),v=u.ymin+f,h=[];for(let S=0;S<y;S++)h.push({x:R,y:v+f*S});const g={geometries:JSON.stringify({geometryType:"esriGeometryPoint",geometries:h}),inSR:Ke(m),outSR:"0:"+e},b=N(o(this.parsedUrl)+"/project",{query:this._getQueryParams(g),...t}).then(S=>S.data).catch(()=>({})),T=await Promise.all([p,d,b]);let $=T[0].ipxf;if($==null){const S=(ue=a.geodataXform)==null?void 0:ue.xf_0;((pe=S==null?void 0:S.name)==null?void 0:pe.toLowerCase())==="topup"&&((X=S==null?void 0:S.coefficients)==null?void 0:X.length)===6&&($={affine:{name:"ics [sensor: Frame] to pixel (column, row) transformation",coefficients:S.coefficients,cellsizeRatio:0,type:"GeometricXform"}})}const V=Ne.fromJSON((ot=(at=T[1])==null?void 0:at.geometries)==null?void 0:ot[0]);V&&(V.spatialReference=new he({wkid:0,imageCoordinateSystem:a}));const x=T[2].geometries?T[2].geometries.filter(S=>(S==null?void 0:S.x)!=null&&S.y!=null&&S.x!=="NaN"&&S.y!=="NaN"):[],J=x.length;if(J<3)return{ics:a,icsToPixelTransform:$,icsExtent:V,northDirection:null};let Q=0,O=0,I=0,M=0;for(let S=0;S<J;S++)Q+=x[S].x,O+=x[S].y,I+=x[S].x*x[S].x,M+=x[S].x*x[S].y;const A=(J*M-Q*O)/(J*I-Q*Q);let re=0;const Te=x[y-1].x>x[0].x,Pe=x[y-1].y>x[0].y;return A===1/0?re=Pe?90:270:A===0?re=Te?0:180:A>0?re=Te?180*Math.atan(A)/Math.PI:180*Math.atan(A)/Math.PI+180:A<0&&(re=Pe?180+180*Math.atan(A)/Math.PI:360+180*Math.atan(A)/Math.PI),{ics:a,icsToPixelTransform:$,icsExtent:V,northDirection:re}}async generateRasterInfo(e,t){var p;if(e=G(w,e),this.serviceRasterInfo&&(!e||((p=e.functionName)==null?void 0:p.toLowerCase())==="none"||this._isVectorFieldResampleFunction(e)))return this.serviceRasterInfo;const s=gr(e);if(!s)throw new C("imagery-layer:generate-raster-info","the rendering rule is not supported");if(this._functionRasterInfos[s])return this._functionRasterInfos[s];const a={...t,query:this._getQueryParams()},u=ai(o(this.parsedUrl),e,a);this._functionRasterInfos[s]=u;try{return await u}catch(m){throw this._functionRasterInfos[s]=null,m}}getExportImageServiceParameters(e,t,s,a){var h;e=e.clone().shiftCentralMeridian();const u=It(e.spatialReference,o(this.parsedUrl));this.pixelType!==this.serviceRasterInfo.pixelType&&(this.exportImageServiceParameters.pixelType=this.pixelType);const p=this.exportImageServiceParameters.toJSON(),{bandIds:m,noData:c}=p;let{renderingRule:d}=p;const y=(h=this.rasterFunction)==null?void 0:h.rasterFunctionDefinition,R=!this.renderer||this.renderer.type==="raster-stretch";if(m!=null&&m.length&&this._hasRasterFunction(this.rasterFunction)&&!y&&R){const g={rasterFunction:"ExtractBand",rasterFunctionArguments:{BandIds:m}};if(d.rasterFunction==="Stretch")g.rasterFunctionArguments.Raster=d.rasterFunctionArguments.Raster,d.rasterFunctionArguments.Raster=g;else if(d.rasterFunction==="Colormap"){const b=d.rasterFunctionArguments.Raster;(b==null?void 0:b.rasterFunction)==="Stretch"?(g.rasterFunctionArguments.Raster=b.rasterFunctionArguments.Raster,b.rasterFunctionArguments.Raster=g):(g.rasterFunctionArguments.Raster=b,d.rasterFunctionArguments.Raster=g)}else g.rasterFunctionArguments.Raster=d,d=g;p.bandIds=void 0}else p.bandIds=m==null?void 0:m.join(",");c instanceof Array&&c.length>0&&(p.noData=c.join(","));const f=this._processMultidimensionalIntersection(null,a,this.exportImageServiceParameters.mosaicRule);if(f.isOutSide)return null;p.mosaicRule=f.mosaicRule!=null?JSON.stringify(f.mosaicRule):null,a=f.timeExtent,p.renderingRule=this._getRenderingRuleString(w.fromJSON(d));const v={};if(a!=null){const{start:g,end:b}=a.toJSON();g&&b&&g===b?v.time=""+g:g==null&&b==null||(v.time=`${g??"null"},${b??"null"}`)}return{bbox:e.xmin+","+e.ymin+","+e.xmax+","+e.ymax,bboxSR:u,imageSR:u,size:t+","+s,...p,...v}}async getSamples(e,t){const s=await this._fetchCapabilities(t==null?void 0:t.signal);if(!(s!=null&&s.operations.supportsGetSamples))throw new C("imagery-layer:get-samples","getSamples operation is not supported on the input image service");e=G(dr,e).clone();const{raster:a}=this;return a&&e.raster==null&&(e.raster=a),tr(this.url,e,this._getRequestOptions(t))}async identify(e,t){var p;if(!(await this._fetchCapabilities(t==null?void 0:t.signal)).operations.supportsIdentify)throw new C("imagery-layer:identify","identify operation is not supported on the input image service");e=G(mt,e).clone(),this.version<10.91&&((p=e.geometry)==null?void 0:p.type)==="extent"&&(e.geometry=Ge.fromExtent(e.geometry));const s=this._processMultidimensionalIntersection(e.geometry,e.timeExtent,e.mosaicRule||this.mosaicRule);if(s.isOutSide)throw new C("imagery-layer:identify","the request cannot be fulfilled when falling outside of the multidimensional subset");e.timeExtent=s.timeExtent,e.mosaicRule=s.mosaicRule;const{raster:a,rasterFunction:u}=this;return u&&e.rasterFunction==null&&(e.rasterFunction=u),a&&e.raster==null&&(e.raster=a),pt(this.url,e,this._getRequestOptions(t))}createQuery(){const e=new He;return e.outFields=["*"],e.returnGeometry=!0,e.where=this.definitionExpression||"1=1",e}async queryRasters(e,t){return{query:e,requestOptions:t}=await this._prepareForQuery(e,t),Di(this.url,e,t)}async queryObjectIds(e,t){return{query:e,requestOptions:t}=await this._prepareForQuery(e,t),Ti(this.url,e,t)}async queryRasterCount(e,t){return{query:e,requestOptions:t}=await this._prepareForQuery(e,t),Pi(this.url,e,t)}async queryVisibleRasters(e,t){var V,x,J,Q;if(!e)throw new C("imagery-layer: query-visible-rasters","missing query parameter");await this.load();const{pixelSize:s,returnDomainValues:a,returnTopmostRaster:u,showNoDataRecords:p}=t||{pixelSize:null,returnDomainValues:!1,returnTopmostRaster:!1,showNoDataRecords:!1};let m=!1,c=null,d=null;const y="raster.servicepixelvalue",R=this._rasterFunctionNamesIndex;if(e.outFields!=null&&(m=e.outFields.some(O=>!O.toLowerCase().includes(y)),this.version>=10.4)){const O=e.outFields.filter(M=>M.toLowerCase().includes(y)&&M.length>y.length).map(M=>{const A=M.slice(y.length+1);return[this._updateRenderingRulesFunctionName(A,R),A]});c=O.map(M=>new w({functionName:M[0]})),d=O.map(M=>M[1]);const{rasterFunction:I}=this;c.length===0?I!=null&&I.functionName?(c.push(I),d.push(I.functionName)):c=null:I!=null&&I.functionName&&!c.some(M=>M.functionName===I.functionName)&&(c.push(I),d.push(I.functionName))}const f=e.outSpatialReference==null||e.outSpatialReference.equals(this.spatialReference),{multidimensionalSubset:v}=this;let h=e.timeExtent||this.timeExtent;if(v){const{isOutside:O,intersection:I}=Qe(v,{geometry:e.geometry,timeExtent:e.timeExtent,multidimensionalDefinition:(V=this.exportImageServiceParameters.mosaicRule)==null?void 0:V.multidimensionalDefinition});if(O)throw new C("imagery-layer:query-visible-rasters","the request cannot be fulfilled when falling outside of the multidimensional subset");(I==null?void 0:I.timeExtent)!=null&&(h=I.timeExtent)}const g=this._combineMosaicRuleWithTimeExtent(this.exportImageServiceParameters.mosaicRule,h);let b=e.geometry;this.version<10.91&&(b==null?void 0:b.type)==="extent"&&(b=Ge.fromExtent(b));const T=this._getQueryParams({geometry:b,timeExtent:h,mosaicRule:g,rasterFunction:this.version<10.4?this.rasterFunction:null,rasterFunctions:c,pixelSize:s,returnCatalogItems:m,returnGeometry:f,raster:this.raster,maxItemCount:u?1:null});delete T.f;const $=new mt(T);try{await this._generateRasterInfo(this.rasterFunction);const O=await pt(this.url,$,{signal:t==null?void 0:t.signal,query:{...this.customParameters}}),I=e.outFields,M=O.value!=null&&O.value.toLowerCase().includes("nodata");if(!(m&&!f&&((x=O==null?void 0:O.catalogItems)!=null&&x.features.length)&&(p||!M)))return this._processVisibleRastersResponse(O,{returnDomainValues:a,templateRRFunctionNames:d,showNoDataRecords:p,templateFields:I});const A=this.objectIdField||"ObjectId",re=((J=O.catalogItems)==null?void 0:J.features)??[],Te=re.map(pe=>{var X;return(X=pe.attributes)==null?void 0:X[A]}),Pe=new He({objectIds:Te,returnGeometry:!0,outSpatialReference:e.outSpatialReference,outFields:[A]}),ue=await this.queryRasters(Pe);return(Q=ue==null?void 0:ue.features)!=null&&Q.length&&ue.features.forEach(pe=>{re.forEach(X=>{X.attributes[A]===pe.attributes[A]&&(X.geometry=new Ge(pe.geometry),e.outSpatialReference!=null&&(X.geometry.spatialReference=e.outSpatialReference))})}),this._processVisibleRastersResponse(O,{returnDomainValues:a,templateRRFunctionNames:d,showNoDataRecords:p,templateFields:I})}catch{throw new C("imagery-layer:query-visible-rasters","encountered error when querying visible rasters")}}async fetchVariableStatisticsHistograms(e,t){const s=N(o(this.parsedUrl)+"/statistics",{query:this._getQueryParams({variable:e}),signal:t}).then(p=>{var m;return(m=p.data)==null?void 0:m.statistics}),a=N(o(this.parsedUrl)+"/histograms",{query:this._getQueryParams({variable:e}),signal:t}).then(p=>{var m;return(m=p.data)==null?void 0:m.histograms}),u=await Promise.all([s,a]);return u[0]&&u[0].forEach(p=>{p.avg=p.mean,p.stddev=p.standardDeviation}),{statistics:u[0]||null,histograms:u[1]||null}}async createFlowMesh(e,t){const s=this._rasterJobHandler.instance;return s?s.createFlowMesh(e,t):Ri(e.meshType,e.simulationSettings,e.flowData,t.signal!=null?t.signal:new AbortController().signal)}getMultidimensionalSubsetVariables(e){const t=e??this.serviceRasterInfo.multidimensionalInfo;return hi(this.multidimensionalSubset,t)}async _fetchService(e){await this._fetchServiceInfo(e),this.rasterInfo||(this.rasterInfo=this.serviceRasterInfo);const t=this.sourceJSON,s=this.serviceRasterInfo!=null?Promise.resolve(this.serviceRasterInfo):oi(o(this.parsedUrl),t,{signal:e,query:this._getQueryParams()}).then(p=>(this._set("serviceRasterInfo",p),this._set("multidimensionalInfo",p.multidimensionalInfo),li(p,t),p)),a=this._hasRasterFunction(this.rasterFunction)?this._generateRasterInfo(this.rasterFunction,{signal:e}):null,u=this._getRasterFunctionInfos();return Promise.all([s,a,u]).then(p=>{p[1]?this._set("rasterInfo",p[1]):this._set("rasterInfo",p[0]),p[2]&&this._set("rasterFunctionInfos",p[2]),this.renderer&&!this._isSupportedRenderer(this.renderer)&&(this._set("renderer",null),ne.getLogger(this).warn("ArcGISImageService","Switching to the default renderer. Renderer applied is not valid for this Imagery Layer")),this._set("renderer",this._configRenderer(this.renderer)),this.addHandles([Vt(()=>this.rasterFunction,c=>{(this.renderer||this.symbolizer||this.popupEnabled&&this.popupTemplate)&&this._generateRasterInfo(c).then(d=>{d&&(this.rasterInfo=d)})})]);const{serviceRasterInfo:m}=this;m.multidimensionalInfo!=null&&this._updateMultidimensionalDefinition(m)})}_combineMosaicRuleWithTimeExtent(e,t){var v;const s=this.timeInfo,{multidimensionalInfo:a}=this.serviceRasterInfo;if(e==null||a==null||t==null||(s==null?void 0:s.startField)==null)return e;const{startField:u}=s,p=a.variables.some(h=>h.dimensions.some(g=>g.name===u))?u:"StdTime";if(e=e.clone(),this.sourceType==="mosaic-dataset")return e.multidimensionalDefinition=(v=e.multidimensionalDefinition)==null?void 0:v.filter(h=>h.dimensionName!==p),this._cleanupMultidimensionalDefinition(e);e.multidimensionalDefinition=e.multidimensionalDefinition||[];const m=e.multidimensionalDefinition.filter(h=>h.dimensionName===p),c=t.start!=null?t.start.getTime():null,d=t.end!=null?t.end.getTime():null,y=c==null||d==null||c===d,R=y?[c||d]:[[c,d]],f=this.version>=10.8;if(m.length)m.forEach(h=>{h.dimensionName===p&&(f?(h.dimensionName=null,h.isSlice=!1,h.values=[]):(h.isSlice=y,h.values=R))});else if(!f){const h=e.multidimensionalDefinition.filter(g=>g.variableName!=null&&g.dimensionName==null);h.length?h.forEach(g=>{g.dimensionName=p,g.isSlice=y,g.values=R}):e.multidimensionalDefinition.push(new yi({variableName:"",dimensionName:p,isSlice:y,values:R}))}return this._cleanupMultidimensionalDefinition(e)}_cleanupMultidimensionalDefinition(e){return e==null?null:(e.multidimensionalDefinition&&(e.multidimensionalDefinition=e.multidimensionalDefinition.filter(t=>!(!t.variableName&&!t.dimensionName)),e.multidimensionalDefinition.length===0&&(e.multidimensionalDefinition=null)),this.sourceType!=="mosaic-dataset"&&e.multidimensionalDefinition==null?null:e)}async _prepareForQuery(e,t){if(!(await this._fetchCapabilities(t==null?void 0:t.signal)).operations.supportsQuery)throw new C("imagery-layer:query-rasters","query operation is not supported on the input image service");return e=e!=null?G(He,e):this.createQuery(),t=this._getRequestOptions(t),this.raster&&(t.query={...t.query,raster:this.raster}),{query:e,requestOptions:t}}async _initJobHandler(){if(this._rasterJobHandler.connectionPromise!=null)return this._rasterJobHandler.connectionPromise;const e=new di;this._rasterJobHandler.connectionPromise=e.initialize().then(()=>{this._rasterJobHandler.instance=e},()=>{}),await this._rasterJobHandler.connectionPromise}_shutdownJobHandler(){this._rasterJobHandler.instance&&this._rasterJobHandler.instance.destroy(),this._rasterJobHandler.instance=null,this._rasterJobHandler.connectionPromise=null,this._rasterJobHandler.refCount=0,this._cachedRendererJson=null}_isSupportedRenderer(e){const{rasterInfo:t,rasterFunction:s}=this;return e.type==="unique-value"&&this._hasRasterFunction(s)&&(t==null?void 0:t.bandCount)===1&&["u8","s8"].includes(t.pixelType)||t!=null&&e!=null&&ui(t).includes(e.type)}async _fetchCapabilities(e){return this.capabilities||await this._fetchServiceInfo(e),this.capabilities}async _fetchServiceInfo(e){var s;let t=this.sourceJSON;if(!t){const{data:a,ssl:u}=await N(o(this.parsedUrl),{query:this._getQueryParams(),signal:e});t=a,this.sourceJSON=t,u&&(this.url=this.url.replace(/^http:/i,"https:"))}if(((s=t.capabilities)==null?void 0:s.toLowerCase().split(",").map(a=>a.trim()).indexOf("tilesonly"))>-1)throw new C("imagery-layer:fetch-service-info","use ImageryTileLayer to open tiles-only image services");this.read(t,{origin:"service",url:this.parsedUrl})}_isMosaicDataset(e){var t;return e.serviceSourceType?e.serviceSourceType==="esriImageServiceSourceTypeMosaicDataset":((t=e.fields)==null?void 0:t.length)>0}_isMosaicRuleSupported(e){var a;if(!e)return!1;const t=this._isMosaicDataset(e),s=e.currentVersion>=10.71&&e.hasMultidimensions&&!(((a=e.fields)==null?void 0:a.length)>1);return t||s}_isVectorFieldResampleFunction(e){if(e==null)return!1;const{functionName:t,functionArguments:s}=e,a=(t==null?void 0:t.toLowerCase())==="resample",u=(s==null?void 0:s.ResampleType)||(s==null?void 0:s.resampleType);return a&&(u===7||u===10)}_isPicture(){return!this.format||this.format.includes("jpg")||this.format.includes("png")}_configRenderer(e){var a,u;const t=this._isPicture(),{rasterInfo:s}=this;if(!t&&!this.pixelFilter||this._isVectorDataSet()){if(!this.bandIds&&s.bandCount>=3){const m=pi(s);!m||s.bandCount===3&&m[0]===0&&m[1]===1&&m[2]===2||(this.bandIds=m)}e||(e=ci(s,{bandIds:this.bandIds,variableName:this.rasterFunction?null:(u=(a=this.mosaicRule)==null?void 0:a.multidimensionalDefinition)==null?void 0:u[0].variableName}));const p=mi(e.toJSON());this.symbolizer?(this.symbolizer.rendererJSON=p,this.symbolizer.rasterInfo=s):this.symbolizer=new Fi({rendererJSON:p,rasterInfo:s}),this.symbolizer.bind().success||(this.symbolizer=null)}return e}_clonePixelData(e){return e==null?e:{extent:e.extent&&e.extent.clone(),pixelBlock:e.pixelBlock!=null?e.pixelBlock.clone():null}}_getQueryParams(e){(e==null?void 0:e.renderingRule)!=null&&typeof e.renderingRule!="string"&&(e.renderingRule=this._getRenderingRuleString(e.renderingRule));const{raster:t,viewId:s}=this;return{raster:t,viewId:s,f:"json",...e,...this.customParameters}}_getRequestOptions(e){return{...e,query:{...e==null?void 0:e.query,...this.customParameters}}}_decodePixelBlock(e,t,s){return this._rasterJobHandler.instance?this._rasterJobHandler.instance.decode({data:e,options:t}):lt(e,t,s)}async _getRasterFunctionInfos(e){var s;const t=this.sourceJSON.rasterFunctionInfos;return this.loaded?t:t&&this.version>=10.3?t.length===1&&t[0].name.toLowerCase()==="none"?t:(s=(await N(o(this.parsedUrl)+"/rasterFunctionInfos",{query:this._getQueryParams(),signal:e})).data)==null?void 0:s.rasterFunctionInfos:null}_canRequestImageElement(e){return!this.pixelFilter&&(!e||e.includes("png"))}async _requestArrayBuffer(e){const{imageProps:t,requestAsImageElement:s,returnImageBitmap:a,signal:u}=e;if(s&&this._canRequestImageElement(t.format)){const v=`${o(this.parsedUrl)}/exportImage`,{data:h}=await N(v,{responseType:a?"blob":"image",query:this._getQueryParams({f:"image",...this.refreshParameters,...e.imageServiceParameters}),signal:u});return h instanceof Blob?{imageBitmap:await ut(h,v,u),params:t}:{imageOrCanvasElement:h,params:t}}const p=this._initJobHandler(),m=N(o(this.parsedUrl)+"/exportImage",{responseType:"array-buffer",query:this._getQueryParams({f:"image",...e.imageServiceParameters}),signal:u}),c=(await Promise.all([m,p]))[0].data,d=t.format||"jpgpng";let y=d;if(y!=="bsq"&&y!=="bip"&&(y=Ii(c)),!y)throw new C("imagery-layer:fetch-image","unsupported format signature "+String.fromCharCode.apply(null,new Uint8Array(c)));const R={signal:u};return{pixelData:{pixelBlock:await(d==="gif"||d==="bmp"||d.includes("png")&&(y==="png"||y==="jpg")?lt(c,{useCanvas:!0,...t},R):this._decodePixelBlock(c,{width:t.width,height:t.height,planes:null,pixelType:null,noDataValue:null,format:d},R)),extent:t.extent},params:t}}_generateRasterInfo(e,t){return this.generateRasterInfo(e,t).catch(()=>null)}_isValidCustomizedMosaicRule(e){var t;return e&&JSON.stringify(e.toJSON())!==JSON.stringify((t=this.defaultMosaicRule)==null?void 0:t.toJSON())}_updateMultidimensionalDefinition(e){var s;if(this._isValidCustomizedMosaicRule(this.mosaicRule))return;let t=gi(e,{multidimensionalSubset:this.multidimensionalSubset});if(t!=null&&t.length>0){this.mosaicRule=this.mosaicRule||new H;const a=this.mosaicRule.multidimensionalDefinition;!this.sourceJSON.defaultVariableName&&this.rasterFunction&&((s=this.rasterFunction.functionName)==null?void 0:s.toLowerCase())!=="none"&&t.forEach(u=>u.variableName=""),t=t.filter(({variableName:u,dimensionName:p})=>u&&u!=="*"||p),!(a!=null&&a.length)&&t.length&&(this.mosaicRule.multidimensionalDefinition=t)}}_processVisibleRastersResponse(e,t){var T,$,V;t=t||{};const s=e.value,{templateRRFunctionNames:a,showNoDataRecords:u,returnDomainValues:p,templateFields:m}=t,c=e.processedValues;let d=(T=e.catalogItems)==null?void 0:T.features,y=((V=($=e.properties)==null?void 0:$.Values)==null?void 0:V.map(x=>x.replaceAll(/ /gi,", ")))||[];const R=this.objectIdField||"ObjectId",f=typeof s=="string"&&s.toLowerCase().includes("nodata"),v=[];if(s&&!d&&!f){const x={};x[R]=0,y=[s],d=[new At(this.fullExtent,null,x)]}if(!d)return[];let h,g,b;this._updateResponseFieldNames(d,m),f&&!u&&(d=[]);for(let x=0;x<d.length;x++){if(h=d[x],s!=null){if(g=y[x],b=this.rasterFunction&&c&&c.length>0&&a&&a.length>0&&a.includes(this.rasterFunction.functionName)?c[a.indexOf(this.rasterFunction.functionName)]:s,g.toLowerCase()==="nodata"&&!u)continue;const J="Raster.ItemPixelValue",Q="Raster.ServicePixelValue";h.attributes[J]=g,h.attributes[Q]=b,this._updateFeatureWithMagDirValues(h,g);const O=this.fields&&this.fields.length>0;let I=this.rasterFunction&&this.serviceRasterInfo.attributeTable!=null?O?g:s:b;this.rasterFunction||(I=O?g:s),this._updateFeatureWithRasterAttributeTableValues(h,I)}if(h.sourceLayer=h.layer=this,p&&this._updateFeatureWithDomainValues(h),a&&c&&a.length===c.length)for(let J=0;J<a.length;J++){const Q="Raster.ServicePixelValue."+a[J];h.attributes[Q]=c[J]}v.push(d[x])}return v}_processMultidimensionalIntersection(e,t,s){const{multidimensionalSubset:a}=this;if(!a)return{isOutSide:!1,timeExtent:t,mosaicRule:s=this._combineMosaicRuleWithTimeExtent(s,t)};if(a){const{isOutside:u,intersection:p}=Qe(a,{geometry:e,timeExtent:t});if(u)return{isOutSide:!0,timeExtent:null,mosaicRule:null};(p==null?void 0:p.timeExtent)!=null&&(t=p.timeExtent)}if(s=this._combineMosaicRuleWithTimeExtent(s,t),s==null?void 0:s.multidimensionalDefinition){const{isOutside:u}=Qe(a,{multidimensionalDefinition:s.multidimensionalDefinition});if(u)return{isOutSide:!0,timeExtent:null,mosaicRule:null}}return{isOutSide:!1,timeExtent:t,mosaicRule:s}}_updateFeatureWithRasterAttributeTableValues(e,t){const s=this.rasterInfo.attributeTable||this.serviceRasterInfo.attributeTable;if(s==null)return;const{features:a,fields:u}=s,p=u.map(c=>c.name).find(c=>c.toLowerCase()==="value");if(!p)return;const m=a.filter(c=>c.attributes[p]===(t!=null?parseInt(t,10):null));m&&m[0]&&u.forEach(c=>{const d=this._rasterAttributeTableFieldPrefix+c.name;e.attributes[d]=m[0].attributes[c.name]})}_updateFeatureWithMagDirValues(e,t){if(!this._isVectorDataSet())return;const s=t.split(/,\s*/).map(c=>parseFloat(c)),a=s.map(c=>[c]),u=s.map(c=>({minValue:c,maxValue:c,noDataValue:null})),p=new ke({height:1,width:1,pixelType:"f32",pixels:a,statistics:u});this.pixelFilter!=null&&this.pixelFilter({pixelBlock:p,extent:new Ne(0,0,0,0,this.spatialReference)});const m=this.serviceDataType==="esriImageServiceDataTypeVector-MagDir"?[p.pixels[0][0],p.pixels[1][0]]:vi([p.pixels[0][0],p.pixels[1][0]]);e.attributes["Raster.Magnitude"]=m[0],e.attributes["Raster.Direction"]=m[1]}_updateFeatureWithDomainValues(e){const t=this.fields&&this.fields.filter(s=>s.domain&&s.domain.type==="coded-value");t!=null&&t.forEach(s=>{const a=e.attributes[s.name];if(a!=null){const u=s.domain.codedValues.find(p=>p.code===a);u&&(e.attributes[s.name]=u.name)}})}_updateResponseFieldNames(e,t){if(!t||t.length<1)return;const s=this.fieldsIndex;s!=null&&e.forEach(a=>{var u;if(a!=null&&a.attributes)for(const p of t){const m=(u=s.get(p))==null?void 0:u.name;m&&m!==p&&(a.attributes[p]=a.attributes[m],delete a.attributes[m])}})}_getRenderingRuleString(e){if(e){let t=e.toJSON();return t=t.rasterFunctionDefinition??t,(t.thumbnail||t.thumbnailEx)&&(t.thumbnail=t.thumbnailEx=null),JSON.stringify(t)}return null}_hasRasterFunction(e){return(e==null?void 0:e.functionName)!=null&&e.functionName.toLowerCase()!=="none"}_updateRenderingRulesFunctionName(e,t){if(!e||e.length<1)return;if(e==="Raw")return e.replace("Raw","None");const s=e.toLowerCase().replaceAll(/ /gi,"_");return t.has(s)?t.get(s):e}_isRFTJson(e){return(e==null?void 0:e.name)&&e.arguments&&e.function&&e.hasOwnProperty("functionType")}_isVectorDataSet(){return this.serviceDataType==="esriImageServiceDataTypeVector-UV"||this.serviceDataType==="esriImageServiceDataTypeVector-MagDir"}_applyMosaicAndRenderingRules(e){const{raster:t,mosaicRule:s,rasterFunction:a}=this;a&&e instanceof Be&&e.rasterFunction==null&&(e.rasterFunction=a),s&&e.mosaicRule==null&&(e.mosaicRule=s),t&&e.raster==null&&(e.raster=t)}_readCapabilities(e){var v;const t=e.capabilities?e.capabilities.toLowerCase().split(",").map(h=>h.trim()):["image","catalog"],{currentVersion:s,advancedQueryCapabilities:a,maxRecordCount:u}=e,p=t.includes("image"),m=e.serviceDataType==="esriImageServiceDataTypeElevation",c=!(!e.spatialReference&&!((v=e.extent)!=null&&v.spatialReference)),d=t.includes("edit"),y=t.includes("mensuration")&&c,R=e.mensurationCapabilities==null?[]:e.mensurationCapabilities.toLowerCase().split(",").map(h=>h.trim()),f=y&&R.includes("basic");return{data:{supportsAttachment:!1},operations:{supportsComputeHistograms:p,supportsExportImage:p,supportsIdentify:p,supportsMeasure:y,supportsDownload:t.includes("download"),supportsQuery:t.includes("catalog")&&e.fields&&e.fields.length>0,supportsGetSamples:s>=10.2&&p,supportsProject:s>=10.3&&p,supportsComputeStatisticsHistograms:s>=10.4&&p,supportsQueryBoundary:s>=10.6&&p,supportsCalculateVolume:s>=10.7&&m,supportsComputePixelLocation:s>=10.7&&t.includes("catalog"),supportsComputeAngles:s>=10.91,supportsAdd:d,supportsDelete:d,supportsEditing:d,supportsUpdate:d,supportsCalculate:!1,supportsTruncate:!1,supportsValidateSql:!1,supportsChangeTracking:!1,supportsQueryAttachments:!1,supportsResizeAttachments:!1,supportsSync:!1,supportsExceedsLimitStatistics:!1,supportsQueryAnalytics:!1,supportsQueryTopFeatures:!1,supportsAsyncConvert3D:!1},query:{maxRecordCount:u,maxRecordCountFactor:void 0,supportsStatistics:!!(a!=null&&a.supportsStatistics),supportsOrderBy:!!(a!=null&&a.supportsOrderBy),supportsDistinct:!!(a!=null&&a.supportsDistinct),supportsPagination:!!(a!=null&&a.supportsPagination),supportsStandardizedQueriesOnly:!!(a!=null&&a.useStandardizedQueries),supportsPercentileStatistics:!!(a!=null&&a.supportsPercentileStatistics),supportsCentroid:!!(a!=null&&a.supportsReturningGeometryCentroid),supportsDistance:!!(a!=null&&a.supportsQueryWithDistance),supportsExtent:!!(a!=null&&a.supportsReturningQueryExtent),supportsGeometryProperties:!!(a!=null&&a.supportsReturningGeometryProperties),supportsHavingClause:!!(a!=null&&a.supportsHavingClause),supportsQuantization:!1,supportsQuantizationEditMode:!1,supportsQueryGeometry:!1,supportsResultType:!1,supportsMaxRecordCountFactor:!1,supportsSqlExpression:!1,supportsTopFeaturesQuery:!1,supportsQueryByAnonymous:!1,supportsQueryByOthers:!1,supportsHistoricMoment:!1,supportsFormatPBF:!1,supportsDisjointSpatialRelationship:!1,supportsCacheHint:!1,supportsSpatialAggregationStatistics:!1,supportedSpatialAggregationStatistics:{envelope:!1,centroid:!1,convexHull:!1},supportsDefaultSpatialReference:!!(a!=null&&a.supportsDefaultSR),supportsFullTextSearch:!1,supportsCompactGeometry:!1,standardMaxRecordCount:void 0,tileMaxRecordCount:void 0},mensuration:{supportsDistanceAndAngle:f,supportsAreaAndPerimeter:f,supportsPointOrCentroid:f,supportsHeightFromBaseAndTop:y&&R.includes("base-top height"),supportsHeightFromBaseAndTopShadow:y&&R.includes("base-top shadow height"),supportsHeightFromTopAndTopShadow:y&&R.includes("top-top shadow height"),supports3D:y&&R.includes("3d")}}}};function o(e){return(e==null?void 0:e.path)??""}return n([l({clonable:!1})],i.prototype,"_functionRasterInfos",void 0),n([l({clonable:!1})],i.prototype,"_rasterJobHandler",void 0),n([l({clonable:!1})],i.prototype,"_cachedRendererJson",void 0),n([l({readOnly:!0})],i.prototype,"_serviceSupportsMosaicRule",void 0),n([E("_serviceSupportsMosaicRule",["currentVersion","fields"])],i.prototype,"readServiceSupportsMosaicRule",null),n([l({readOnly:!0})],i.prototype,"_rasterAttributeTableFieldPrefix",void 0),n([l({readOnly:!0})],i.prototype,"_rasterFunctionNamesIndex",null),n([l()],i.prototype,"adjustAspectRatio",void 0),n([l({type:[Ee],json:{write:!0}})],i.prototype,"bandIds",void 0),n([E("bandIds")],i.prototype,"readBandIds",null),n([l({readOnly:!0,json:{read:!1}})],i.prototype,"capabilities",void 0),n([E("service","capabilities",["capabilities","currentVersion","serviceDataType"])],i.prototype,"readCapabilities",null),n([l({type:Number})],i.prototype,"compressionQuality",void 0),n([P("compressionQuality")],i.prototype,"writeCompressionQuality",null),n([l({type:Number})],i.prototype,"compressionTolerance",void 0),n([P("compressionTolerance")],i.prototype,"writeCompressionTolerance",null),n([l({json:{read:{source:"copyrightText"}}})],i.prototype,"copyright",void 0),n([l({readOnly:!0,dependsOn:["_serviceSupportsMosaicRule"]})],i.prototype,"defaultMosaicRule",void 0),n([E("defaultMosaicRule",["defaultMosaicMethod"])],i.prototype,"readDefaultMosaicRule",null),n([l({type:String,json:{name:"layerDefinition.definitionExpression",write:{enabled:!0,allowNull:!0}}})],i.prototype,"definitionExpression",void 0),n([l({readOnly:!0,constructOnly:!0})],i.prototype,"exportImageServiceParameters",void 0),n([l()],i.prototype,"rasterInfo",void 0),n([l({readOnly:!0,type:[ce]})],i.prototype,"fields",void 0),n([l({readOnly:!0})],i.prototype,"fieldsIndex",null),n([l({type:["png","png8","png24","png32","jpg","bmp","gif","jpgpng","lerc","tiff"],json:{write:!0}})],i.prototype,"format",null),n([E("service","format",["serviceDataType"])],i.prototype,"readFormat",null),n([l({type:Ne})],i.prototype,"fullExtent",void 0),n([l({readOnly:!0})],i.prototype,"hasMultidimensions",void 0),n([l({json:{read:{source:"maxImageHeight"}}})],i.prototype,"imageMaxHeight",void 0),n([l({json:{read:{source:"maxImageWidth"}}})],i.prototype,"imageMaxWidth",void 0),n([l({type:String,json:{type:oe.jsonValues,read:oe.read,write:oe.write}})],i.prototype,"interpolation",void 0),n([l()],i.prototype,"minScale",void 0),n([E("service","minScale")],i.prototype,"readMinScale",null),n([l()],i.prototype,"maxScale",void 0),n([E("service","maxScale")],i.prototype,"readMaxScale",null),n([l({type:H})],i.prototype,"mosaicRule",null),n([E("mosaicRule",["mosaicRule","defaultMosaicMethod"])],i.prototype,"readMosaicRule",null),n([P("mosaicRule")],i.prototype,"writeMosaicRule",null),n([l()],i.prototype,"multidimensionalInfo",void 0),n([l({type:ii,json:{write:!0}})],i.prototype,"multidimensionalSubset",void 0),n([l({json:{type:Ee}})],i.prototype,"noData",void 0),n([P("noData")],i.prototype,"writeNoData",null),n([l({type:String,json:{type:Ie.jsonValues,read:Ie.read,write:Ie.write}})],i.prototype,"noDataInterpretation",void 0),n([l({type:String,readOnly:!0,json:{read:{source:["fields"]}}})],i.prototype,"objectIdField",void 0),n([E("objectIdField")],i.prototype,"readObjectIdField",null),n([l({readOnly:!0})],i.prototype,"geometryType",void 0),n([l({})],i.prototype,"typeIdField",void 0),n([l({})],i.prototype,"types",void 0),n([l({readOnly:!0})],i.prototype,"parsedUrl",null),n([l({type:Function})],i.prototype,"pixelFilter",void 0),n([l()],i.prototype,"raster",void 0),n([l({readOnly:!0})],i.prototype,"sourceType",void 0),n([E("sourceType",["serviceSourceType","fields"])],i.prototype,"readSourceType",null),n([l()],i.prototype,"viewId",void 0),n([l({types:ri,json:{name:"layerDefinition.drawingInfo.renderer",origins:{"web-scene":{types:si,name:"layerDefinition.drawingInfo.renderer",write:{overridePolicy:e=>({enabled:e&&e.type!=="vector-field"&&e.type!=="flow"})}}}}})],i.prototype,"renderer",null),n([E("renderer")],i.prototype,"readRenderer",null),n([P("renderer")],i.prototype,"writeRenderer",null),n([l({clonable:!1})],i.prototype,"symbolizer",void 0),n([l(_t)],i.prototype,"opacity",void 0),n([l({readOnly:!0})],i.prototype,"rasterFields",null),n([l({constructOnly:!0})],i.prototype,"rasterFunctionInfos",void 0),n([l({type:w})],i.prototype,"renderingRule",null),n([l({type:w,json:{name:"renderingRule"}})],i.prototype,"rasterFunction",null),n([E("rasterFunction",["renderingRule","rasterFunctionInfos"])],i.prototype,"readRasterFunction",null),n([l({readOnly:!0})],i.prototype,"serviceDataType",void 0),n([l({readOnly:!0,type:he})],i.prototype,"spatialReference",void 0),n([E("spatialReference",["spatialReference","extent"])],i.prototype,"readSpatialReference",null),n([l({json:{type:Ue.jsonValues}})],i.prototype,"pixelType",void 0),n([E("pixelType")],i.prototype,"readPixelType",null),n([P("pixelType")],i.prototype,"writePixelType",null),n([l({constructOnly:!0,type:Rt})],i.prototype,"serviceRasterInfo",void 0),n([l()],i.prototype,"sourceJSON",void 0),n([l(Nt)],i.prototype,"url",void 0),n([l({readOnly:!0})],i.prototype,"version",void 0),n([E("version",["currentVersion","fields","timeInfo"])],i.prototype,"readVersion",null),i=n([F("esri.layers.mixins.ArcGISImageService")],i),i};let q=class extends Mt(Et(Jt(qt(Lt(fr(zt(Gt(Ht(Ut(Bt(ei))))))))))){constructor(...r){super(...r),this.isReference=null,this.operationalLayerType="ArcGISImageServiceLayer",this.popupEnabled=!0,this.popupTemplate=null,this.type="imagery",this._debouncedSaveOperations=Qt(async(i,o,e)=>{const{save:t,saveAs:s}=await ti(()=>import("./imageryUtils-d2a4f71d.js"),["assets/imageryUtils-d2a4f71d.js","assets/utils-941a520e.js","assets/index-b5c8f851.js","assets/index-86716609.css","assets/originUtils-cfe4feaf.js","assets/multiOriginJSONSupportUtils-c978f4c3.js","assets/jsonContext-4c9e0fec.js","assets/saveAPIKeyUtils-3004b15e.js"]);switch(i){case _e.SAVE:return t(this,o);case _e.SAVE_AS:return s(this,e,o)}})}normalizeCtorArgs(r,i){return typeof r=="string"?{url:r,...i}:r}load(r){const i=r!=null?r.signal:null;return this.addResolvingPromise(this.loadFromPortal({supportedTypes:["Image Service"]},r).catch(kt).then(()=>this._fetchService(i))),Promise.resolve(this)}get legendEnabled(){return!this._isPreviewLayer&&(this._get("legendEnabled")??!0)}set legendEnabled(r){this._set("legendEnabled",r)}get listMode(){return this._isPreviewLayer?"hide":this._get("listMode")}set listMode(r){this._set("listMode",r)}writeOperationalLayerType(r,i,o){var t;const e=((t=this.renderer)==null?void 0:t.type)==="vector-field";i[o]=e?"ArcGISImageServiceVectorLayer":"ArcGISImageServiceLayer"}get defaultPopupTemplate(){return this.createPopupTemplate()}get _isPreviewLayer(){var r;return!(!this.raster||!((r=this.url)!=null&&r.toLowerCase().includes("/rasterrendering/imageserver")))}createPopupTemplate(r){var p;const i=this.rasterFields,o=this.title,e=new Set;let t=!1,s=!1;this.capabilities&&(t=this.capabilities.operations.supportsQuery&&this.fields&&this.fields.length>0,s=this.serviceDataType==="esriImageServiceDataTypeVector-UV"||this.serviceDataType==="esriImageServiceDataTypeVector-MagDir");const a=new Set;t&&a.add("raster.itempixelvalue");for(const m of i){const c=m.name.toLowerCase();a.has(c)||c.includes("raster.servicepixelvalue.")||e.add(m.name)}s&&e.add("raster.magnitude").add("raster.direction");const u=Wt({fields:i,title:o},{...r,visibleFieldNames:e});return u!=null&&u.fieldInfos&&((p=this.rasterInfo)!=null&&p.pixelType.startsWith("f"))&&u.fieldInfos.forEach(({format:m,fieldName:c})=>{m&&/^raster\.(item|service)pixelvalue/i.test(c)&&(m.places=2)}),u}queryFeatures(r,i){return this.queryRasters(r,i).then(o=>{if(o!=null&&o.features)for(const e of o.features)e.layer=e.sourceLayer=this;return o})}queryFeatureCount(r,i){return this.queryRasterCount(r,i)}redraw(){this.emit("redraw")}async save(r){return this._debouncedSaveOperations(_e.SAVE,r)}async saveAs(r,i){return this._debouncedSaveOperations(_e.SAVE_AS,i,r)}serviceSupportsSpatialReference(r){return Kt(this,r)}write(r,i){if(!this._isPreviewLayer)return super.write(r,i);if(i!=null&&i.messages){const o=`${i.origin}/${i.layerContainerType||"operational-layers"}`;i.messages.push(new C("layer:unsupported",`Imagery preview layer (${this.title}, ${this.id}) of type '${this.declaredClass}' are not supported in the context of '${o}'`,{layer:this}))}return null}};n([l(Zt)],q.prototype,"legendEnabled",null),n([l({type:["show","hide"]})],q.prototype,"listMode",null),n([l({type:Boolean,json:{read:!1,write:{enabled:!0,overridePolicy:()=>({enabled:!1})}}})],q.prototype,"isReference",void 0),n([l({type:["ArcGISImageServiceLayer"],json:{origins:{"web-map":{type:["ArcGISImageServiceLayer","ArcGISImageServiceVectorLayer"],read:!1,write:{target:"layerType",ignoreOrigin:!0}}}}})],q.prototype,"operationalLayerType",void 0),n([P("web-map","operationalLayerType")],q.prototype,"writeOperationalLayerType",null),n([l(Xt)],q.prototype,"popupEnabled",void 0),n([l({type:Yt,json:{read:{source:"popupInfo"},write:{target:"popupInfo"}}})],q.prototype,"popupTemplate",void 0),n([l({readOnly:!0})],q.prototype,"defaultPopupTemplate",null),n([l({readOnly:!0,json:{read:!1}})],q.prototype,"type",void 0),n([l({readOnly:!0})],q.prototype,"_isPreviewLayer",null),q=n([F("esri.layers.ImageryLayer")],q);const Kr=q;export{Kr as default};