Custom Gis Application with Arcgis Javascript API with modern layouting
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

10 lines
3.3 KiB

// 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 ../../../core/maybe ../../../core/promiseUtils ../../../core/reactiveUtils ../../../layers/graphics/dehydratedFeatureComparison ../../../layers/graphics/hydratedFeatures ../../../support/elevationInfoUtils ../dragEventPipeline ./SnappingContext ../../support/Scheduler".split(" "),function(y,z,A,N,O,P,Q,R,S,B){function T(a,b,c){return A.debounce(async({frameTask:d,point:h,scenePoint:l,context:k,event:f,delta:n,getLastState:e},p)=>{const q=await d.schedule(()=>a.snap({point:h,scenePoint:l,
context:k,signal:p}),p);q.valid&&(d=await d.schedule(()=>q.apply(),p),e=e(),null!=e.point&&h!==e.point&&(d=a.update({point:e.point,scenePoint:e.scenePoint,context:k})),null!=e.updatePoint&&O.pointEquals(d,e.updatePoint)||(C(f.mapEnd,d,n,b),c.execute(f)))})}function U(a){return"3d"===a.type?a.resourceController.scheduler.registerTask(B.TaskPriority.SNAPPING):B.ImmediateTask}function V(a,b,c){return{context:new S.SnappingContext({editGeometryOperations:a.editGeometryOperations,elevationInfo:a.elevationInfo,
pointer:a.pointer,vertexHandle:null!=b.info?b.info.handle:null,excludeFeature:a.excludeFeature,feature:a.feature,visualizer:a.visualizer}),originalPos:null!=b.snapOrigin?a.coordinateHelper.vectorToDehydratedPoint(b.snapOrigin):b.mapStart,originalScenePos:null!=b.scenePoints?b.scenePoints.sceneStart:null,frameTask:c}}function D(a,[b,c,d]){a=P.clonePoint(a);a.x+=b;a.y+=c;a.hasZ&&(a.z+=d);return a}function r(a,b){return[a.x-b.x,a.y-b.y,a.hasZ&&b.hasZ?a.z-b.z:0]}function C(a,b,[c,d,h],l){a.x=b.x+c;a.y=
b.y+d;l&&a.hasZ&&b.hasZ&&(a.z=b.z+h)}function W(a,b){if(!a.hasZ())return null;var c=b.vertices;b=null;for(const d of c){c=a.getZ(d.pos);if(null!=b&&null!=c&&1E-6<Math.abs(c-b))return null;null==b&&(b=c)}return b}function E(a){return a}y.createSnapDragEventPipelineStep=function({predicate:a=()=>!0,snappingManager:b,snappingContext:c,updatingHandles:d,useZ:h=!0}){const l=new R.EventPipeline;if(null==b)return{snappingStep:[E,l],cancelSnapping:E};let k=null,f=null,n,e=null;const p=()=>{k=z.abortMaybe(k);
b.doneSnapping();f?.frameTask.remove();f=null;n=z.removeMaybe(n);e=null},q=T(b,h,l);let F=null,G=null,H=null;return{snappingStep:[g=>{if(!a(g))return g;const {action:t}=g;if("start"===t){var {info:m}=g;const u=U(b.view);f=V(c,g,u);f.context.selfSnappingZ=null;h||null==m||(m=W(c.coordinateHelper,m.handle.component),null!=m&&(f.context.selfSnappingZ={value:m,elevationInfo:c.elevationInfo??Q.absoluteHeightElevationInfo}))}if(null!=f){const {context:u,originalScenePos:I,originalPos:J}=f,{mapEnd:K,mapStart:L,
scenePoints:v}=g,w=D(J,r(K,L)),M=r(L,J),X={...g,action:"update"},Y=f.context;var x=null==I||null==v?null:D(I,r(v.sceneEnd,v.sceneStart));H=m=b.update({point:w,scenePoint:x,context:u});C(K,m,M,h);F=w;G=x;if("end"!==t){const {frameTask:Z}=f;null==k&&(k=new AbortController);e=aa=>{d.addPromise(A.ignoreAbortErrors(q({frameTask:Z,event:X,context:Y,point:w,scenePoint:x,delta:M,getLastState:()=>({point:F,scenePoint:G,updatePoint:aa.forceUpdate?null:H})},k.signal)))};e({forceUpdate:!1});null==n&&(n=N.watch(()=>
b.options.effectiveEnabled,()=>e?.({forceUpdate:!0})))}}"end"===t&&p();return g},l],cancelSnapping:g=>{p();return g}}};Object.defineProperty(y,Symbol.toStringTag,{value:"Module"})});