// 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 ../../../core/jsonMap ../../../core/unitUtils ../../../geometry/projection ../../../geometry/support/extentUtils ../../../geometry/support/jsonUtils ../../../geometry/support/normalizeUtils ../../../geometry/support/spatialReferenceUtils ./projectionSupport".split(" "),function(u,g,v,w,x,y,h,z,k,m){async function q(b,a,f){if(!b)return null;var {where:c}=b;b.where=c=c?.trim();if(!c||/^1 *= *1$/.test(c)||a&&a===c)b.where=null;if(!b.geometry)return b;a=await A(b);b.distance=0; b.units=null;"esriSpatialRelEnvelopeIntersects"===b.spatialRel&&({spatialReference:c}=b.geometry,a=y.getGeometryExtent(a),a.spatialReference=c);if(a){await m.checkProjectionSupport(a.spatialReference,f);c=a.spatialReference;a=r(a,f)&&h.isExtent(a)?{spatialReference:c,rings:[[[a.xmin,a.ymin],[a.xmin,a.ymax],[a.xmax,a.ymax],[a.xmax,a.ymin],[a.xmin,a.ymin]]]}:a;c=(await z.normalizeCentralMeridian(h.fromJSON(a)))[0];if(null==c)throw p;const e="quantizationParameters"in b&&b.quantizationParameters?.tolerance|| "maxAllowableOffset"in b&&b.maxAllowableOffset||0;a=e&&r(a,f)?{densificationStep:8*e}:void 0;c=c.toJSON();a=m.project(c,c.spatialReference,f,a);if(!a)throw p;a.spatialReference=f;b.geometry=a}return b}function r(b,a){if(!b)return!1;const f=b.spatialReference;return(h.isExtent(b)||h.isPolygon(b)||h.isPolyline(b))&&!k.equals(f,a)&&!x.canProjectWithoutEngine(f,a)}async function A(b){const {distance:a,units:f}=b,c=b.geometry;if(null==a||"vertexAttributes"in c)return c;var e=c.spatialReference;b=f?t.fromJSON(f): w.getUnitString(e);e=e&&(k.isGeographic(e)||k.isWebMercator(e))?c:await m.checkProjectionSupport(e,k.wgs84).then(()=>m.project(c,k.wgs84));return(await B())(e.spatialReference,e,a,b)}async function B(){return(await new Promise((b,a)=>u(["../../../geometry/geometryEngineJSON"],b,a))).geodesicBuffer}const t=new v.JSONMap({esriSRUnit_Meter:"meters",esriSRUnit_Kilometer:"kilometers",esriSRUnit_Foot:"feet",esriSRUnit_StatuteMile:"miles",esriSRUnit_NauticalMile:"nautical-miles",esriSRUnit_USNauticalMile:"us-nautical-miles"}), p=Object.freeze({});g.normalizeQuery=async function(b,a,f){const {outFields:c,orderByFields:e,groupByFieldsForStatistics:n,outStatistics:l}=b;if(c)for(var d=0;d