// All material copyright Esri, All Rights Reserved, unless otherwise specified. // See https://js.arcgis.com/4.30/esri/copyright.txt for details. //>>built define("exports ../../../request ../../../core/urlUtils ../../../geometry/support/jsonUtils ../../../geometry/support/normalizeUtils ../../../geometry/support/spatialReferenceUtils ../../operations/urlUtils ./queryZScale".split(" "),function(f,p,k,q,r,l,t,u){function m(a,b){const d=a.geometry;a=a.toJSON();null!=d&&(a.geometry=JSON.stringify(d),a.geometryType=q.getJsonType(d),a.inSR=l.srToRESTValue(d.spatialReference));a.topFilter?.groupByFields&&(a.topFilter.groupByFields=a.topFilter.groupByFields.join(",")); a.topFilter?.orderByFields&&(a.topFilter.orderByFields=a.topFilter.orderByFields.join(","));a.topFilter&&(a.topFilter=JSON.stringify(a.topFilter));a.objectIds&&(a.objectIds=a.objectIds.join(","));a.orderByFields&&(a.orderByFields=a.orderByFields.join(","));!a.outFields||b?.returnCountOnly||b?.returnExtentOnly||b?.returnIdsOnly?delete a.outFields:a.outFields.includes("*")?a.outFields="*":a.outFields=a.outFields.join(",");a.outSR?a.outSR=l.srToRESTValue(a.outSR):d&&a.returnGeometry&&(a.outSR=a.inSR); a.returnGeometry&&delete a.returnGeometry;if(a.timeExtent){const {start:c,end:e}=a.timeExtent;if(null!=c||null!=e)a.time=c===e?c:`${null==c?"null":c},${null==e?"null":e}`;delete a.timeExtent}return a}function h(a,b,d,c={},e={}){const n="string"===typeof a?k.urlToObject(a):a;a=b.geometry?[b.geometry]:[];c.responseType="json";return r.normalizeCentralMeridian(a,null,c).then(g=>{g=g?.[0];null!=g&&(b=b.clone(),b.geometry=g);g=t.mapParameters({...n.query,f:d,...e,...m(b,e)});return p(k.join(n.path,"queryTopFeatures"), {...c,query:{...g,...c.query}})})}f.executeQueryForTopCount=function(a,b,d){return null!=b.timeExtent&&b.timeExtent.isEmpty?Promise.resolve({data:{count:0}}):h(a,b,"json",d,{returnIdsOnly:!0,returnCountOnly:!0})};f.executeQueryForTopExtents=async function(a,b,d){return null!=b.timeExtent&&b.timeExtent.isEmpty?{data:{count:0,extent:null}}:h(a,b,"json",d,{returnExtentOnly:!0,returnCountOnly:!0}).then(c=>{const e=c.data;if(e.hasOwnProperty("extent"))return c;if(e.features)throw Error("Layer does not support extent calculation."); if(e.hasOwnProperty("count"))throw Error("Layer does not support extent calculation.");return c})};f.executeQueryForTopIds=async function(a,b,d){return null!=b.timeExtent&&b.timeExtent.isEmpty?{data:{objectIds:[]}}:h(a,b,"json",d,{returnIdsOnly:!0})};f.executeTopFeaturesQuery=async function(a,b,d,c){a=await h(a,b,"json",c);u.applyFeatureSetZUnitScaling(b,d,a.data);return a};f.queryToQueryStringParameters=m;Object.defineProperty(f,Symbol.toStringTag,{value:"Module"})});