UNPKG

@doegis/core

Version:

DOE GIS API

3 lines (1 loc) 1.13 kB
import e from"../../../core/Error.js";import r from"../../../core/Logger.js";import{isNone as t}from"../../../core/maybe.js";import{unquantizeMultipoint as o,unquantizePolyline as n,unquantizePolygon as a,unquantizePoint as s}from"../../../geometry/support/quantizationUtils.js";function i(e,o,n,a,s){if(t(e))return null;const i=e.referencesGeometry()&&s?c(o,a,s):o,u=e.repurposeFeature(i);try{return e.evaluate({...n,$feature:u})}catch(m){return r.getLogger("esri.views.2d.support.arcadeOnDemand").warn("Feature arcade evaluation failed:",m),null}}const u=new Map;function c(e,r,t){const{transform:o,hasZ:n,hasM:a}=t;u.has(r)||u.set(r,m(r));const s=u.get(r)(e.geometry,o,n,a);return{...e,geometry:s}}function m(t){const i={};switch(t){case"esriGeometryPoint":return(e,r,t,o)=>s(r,i,e,t,o);case"esriGeometryPolygon":return(e,r,t,o)=>a(r,i,e,t,o);case"esriGeometryPolyline":return(e,r,t,o)=>n(r,i,e,t,o);case"esriGeometryMultipoint":return(e,r,t,n)=>o(r,i,e,t,n);default:return r.getLogger("esri.views.2d.support.arcadeOnDemand").error(new e("mapview-arcade",`Unable to handle geometryType: ${t}`)),e=>e}}export{i as default};