12345 |
- /*
- All material copyright ESRI, All Rights Reserved, unless otherwise specified.
- See https://js.arcgis.com/4.24/esri/copyright.txt for details.
- */
- import{shapeExtent as e}from"../kernel.js";import{H as n,y as t,p as r,h as i}from"../../chunks/languageUtils.js";import a from"../featureset/actions/SpatialFilter.js";import s from"../featureset/sources/Empty.js";import o from"../../geometry/Geometry.js";import{crosses as u,touches as l,within as c,overlaps as f,contains as p,intersects as m,relate as h}from"../../geometry/geometryEngineAsync.js";function w(e){return e instanceof o}function y(r,i,h,y){return y(r,i,(async function(r,i,y){if(y.length<2)throw new Error("Missing Parameters");if(null===(y=n(y))[0]&&null===y[1])return!1;if(t(y[0])){if(y[1]instanceof o)return new a({parentfeatureset:y[0],relation:h,relationGeom:y[1]});if(null===y[1])return new s({parentfeatureset:y[0]});throw new Error("Spatial Relation cannot accept this parameter type")}if(w(y[0])){if(w(y[1])){switch(h){case"esriSpatialRelEnvelopeIntersects":return m(e(y[0]),e(y[1]));case"esriSpatialRelIntersects":return m(y[0],y[1]);case"esriSpatialRelContains":return p(y[0],y[1]);case"esriSpatialRelOverlaps":return f(y[0],y[1]);case"esriSpatialRelWithin":return c(y[0],y[1]);case"esriSpatialRelTouches":return l(y[0],y[1]);case"esriSpatialRelCrosses":return u(y[0],y[1])}throw new Error("Unrecognised Relationship")}if(t(y[1]))return new a({parentfeatureset:y[1],relation:h,relationGeom:y[0]});if(null===y[1])return!1;throw new Error("Spatial Relation cannot accept this parameter type")}if(null!==y[0])throw new Error("Spatial Relation cannot accept this parameter type");return t(y[1])?new s({parentfeatureset:y[1]}):!(y[1]instanceof o||null===y[1])&&void 0}))}function d(e){"async"===e.mode&&(e.functions.intersects=function(n,t){return y(n,t,"esriSpatialRelIntersects",e.standardFunctionAsync)},e.functions.envelopeintersects=function(n,t){return y(n,t,"esriSpatialRelEnvelopeIntersects",e.standardFunctionAsync)},e.signatures.push({name:"envelopeintersects",min:"2",max:"2"}),e.functions.contains=function(n,t){return y(n,t,"esriSpatialRelContains",e.standardFunctionAsync)},e.functions.overlaps=function(n,t){return y(n,t,"esriSpatialRelOverlaps",e.standardFunctionAsync)},e.functions.within=function(n,t){return y(n,t,"esriSpatialRelWithin",e.standardFunctionAsync)},e.functions.touches=function(n,t){return y(n,t,"esriSpatialRelTouches",e.standardFunctionAsync)},e.functions.crosses=function(n,t){return y(n,t,"esriSpatialRelCrosses",e.standardFunctionAsync)},e.functions.relate=function(a,u){return e.standardFunctionAsync(a,u,(function(e,a,u){if(u=n(u),r(u,3,3),w(u[0])&&w(u[1]))return h(u[0],u[1],i(u[2]));if(u[0]instanceof o&&null===u[1])return!1;if(u[1]instanceof o&&null===u[0])return!1;if(t(u[0])&&null===u[1])return new s({parentfeatureset:u[0]});if(t(u[1])&&null===u[0])return new s({parentfeatureset:u[1]});if(t(u[0])&&u[1]instanceof o)return u[0].relate(u[1],i(u[2]));if(t(u[1])&&u[0]instanceof o)return u[1].relate(u[0],i(u[2]));if(null===u[0]&&null===u[1])return!1;throw new Error("Illegal Argument")}))})}export{d as registerFunctions};
|