@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
6 lines (5 loc) • 1.24 kB
JavaScript
/*
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
See https://js.arcgis.com/4.33/esri/copyright.txt for details.
*/
import e from"../../Graphic.js";import{makeHandle as r,handlesGroup as o}from"../../core/handleUtils.js";import{throwIfAborted as t}from"../../core/promiseUtils.js";import{watch as a}from"../../core/reactiveUtils.js";import{showProgressCursor as c}from"./workflowUtils.js";async function s({view:s,data:l,signal:i,next:m,cancel:p}){const{creationInfo:u}=l;if(!u)return r();if(!n(u))return r();const{layer:f}=u,y=null!=u.geometryToPlace;if(u.geometryToPlace=null,y)return p(),r();const{Upload:d}=await import("./Upload.js");t(i);const g=new d;l.upload=g;let j=null;const w=()=>j?.remove(),h=o([a((()=>g.state),(r=>{switch(r){case"default":case"error":w();break;case"pending":w(),j=c(s);break;case"success":{u.maxFeatures=1;const{result:r}=g;"georeferenced"===r?.type||"georeferenced-reprojected"===r?.type?(u.geometryToPlace=r.mesh,u.initialFeature=new e({geometry:r.mesh,sourceLayer:f})):u.geometryToPlace=r?.mesh,w(),m();break}}})),r((()=>{g.cancel(),w()}))]);return g.uploadTo(f),h}function n(e){const r=e?.layer;return"scene"===r?.type}export{s as handleModelUpload,n as isModelUpload};