UNPKG

@arcgis/core

Version:

ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API

6 lines (5 loc) 1.38 kB
/* All material copyright ESRI, All Rights Reserved, unless otherwise specified. See https://js.arcgis.com/4.32/esri/copyright.txt for details. */ import e from"../../Graphic.js";import{makeHandle as r,handlesGroup as t}from"../../core/handleUtils.js";import{throwIfAborted as o,ignoreAbortErrors as a}from"../../core/promiseUtils.js";import{watch as c}from"../../core/reactiveUtils.js";import{getCreationAttributes as s,showProgressCursor as n}from"./workflowUtils.js";async function i({view:i,data:m,signal:u,next:p,cancel:f}){const{creationInfo:d}=m;if(!d)return r();if(!l(d))return r();const{layer:y}=d,g=null!=d.geometryToPlace;if(d.geometryToPlace=null,g)return f(),r();const{Upload:h}=await import("./Upload.js");o(u);const j=new h;m.upload=j;let w=null;const T=()=>w?.remove(),U=t([c((()=>j.state),(r=>{switch(r){case"default":case"error":T();break;case"pending":T(),w=n(i);break;case"success":{d.maxFeatures=1;const{result:r}=j;"georeferenced"===r?.type||"georeferenced-reprojected"===r?.type?(d.geometryToPlace=r.mesh,d.initialFeature=new e({attributes:s(m.fullTemplate,d.attributeOverrides),geometry:r.mesh,sourceLayer:y}),i.goTo(d.initialFeature,{animate:!1}).catch(a)):d.geometryToPlace=r?.mesh,T(),p();break}}})),r((()=>{j.cancel(),T()}))]);return j.uploadTo(y),U}function l(e){const r=e?.layer;return"scene"===r?.type}export{i as handleModelUpload,l as isModelUpload};