// All material copyright Esri, All Rights Reserved, unless otherwise specified. // See https://js.arcgis.com/4.30/esri/copyright.txt for details. //>>built define("require exports ../../request ../../geometry/SpatialReference ../../geometry/support/normalizeUtils ../../layers/support/Field ../../layers/support/MapImage ../utils ../support/ArealUnit ../support/DataFile ../support/FeatureSet ../support/LinearUnit ../support/ParameterValue ../support/parameterValueUtils ../support/RasterData".split(" "),function(z,h,A,B,C,D,E,v,F,n,p,G,H,l,I){function w(b,a,d){for(const e in b){var c=b[e];c&&"object"===typeof c&&c instanceof p&&({features:c}=c,d[e]=[a.length, a.length+c.length],c.forEach(f=>{a.push(f.geometry)}))}}async function q(b,a){switch(b){case "areal-unit":return F.fromJSON(a);case "boolean":case "double":case "long":case "string":case "value-table":return a;case "date":return new Date(a);case "data-file":return n.fromJSON(a);case "linear-unit":return G.fromJSON(a);case "feature-record-set-layer":if("url"in a)return n.fromJSON(a);if("layerDefinition"in a){b=new (await new Promise((e,f)=>z(["../../layers/FeatureLayer"],m=>e(Object.freeze(Object.defineProperty({__proto__:null, default:m},Symbol.toStringTag,{value:"Module"}))),f))).default;const {layerDefinition:d,featureSet:c}=a;b.read({layerDefinition:d,featureSet:c},{origin:"portal-item"});b.spatialReference=B.fromJSON(c.spatialReference??d.spatialReference??d.extent.spatialReference);return b}return p.fromJSON(a);case "record-set":return"url"in a?n.fromJSON(a):p.fromJSON(a);case "raster-data":case "raster-data-layer":return"mapImage"in a?E.fromJSON(a.mapImage):I.fromJSON(a);case "field":return D.fromJSON(a)}}async function J(b, a){const d=b.replace(l.multiValuePrefix,"");b="composite"===d?a.map(c=>q(l.dataTypeJsonMap.fromJSON(c.dataType),c.value)):a.map(c=>q(d,c));return Promise.all(b)}function r(b,a,d){for(const c in b){const e=b[c];Array.isArray(e)?b[c]=JSON.stringify(e.map(f=>r({item:f},!0).item)):e instanceof Date&&(b[c]=e.getTime())}return v.encode(b,a,d)}h.collectGeometries=w;h.constructRequest=async function(b,a,d,c,e){const f={},m={},x=[];w(c,x,f);return C.normalizeCentralMeridian(x).then(g=>{const {outSpatialReference:t, processExtent:y,processSpatialReference:u,returnColumnName:K,returnFeatureCollection:L,returnM:M,returnZ:N}=d,{path:O}=v.parseUrl(b);for(var k in f){const [P,Q]=f[k];m[k]=g.slice(P,Q)}g=t?t.wkid||t:null;k=u?u.wkid||u:null;g=r({...(y?{context:{extent:y,outSR:g,processSR:k}}:{"env:outSR":g,"env:processSR":k}),...c,...("execute"===a?{returnColumnName:K||void 0,returnFeatureCollection:L||void 0,returnM:M||void 0,returnZ:N||void 0}:null),f:"json"},null,m);return A(`${O}/${a}`,{...e,query:g})})};h.decode= async function(b){const a=l.dataTypeJsonMap.fromJSON(b.dataType),{paramName:d}=b;b=a.startsWith(l.multiValuePrefix)?await J(a,b.value):await q(a,b.value);return new H({dataType:a,paramName:d,value:b})};h.gpEncode=r;Object.defineProperty(h,Symbol.toStringTag,{value:"Module"})});