// All material copyright Esri, All Rights Reserved, unless otherwise specified. // See https://js.arcgis.com/4.30/esri/copyright.txt for details. //>>built define("require exports ../../Viewpoint ../../core/Error ../../core/Logger ../../geometry/support/webMercatorUtils ../../portal/Portal ../../portal/support/jsonContext ../../rest/geometryService/project ../../rest/support/ProjectParameters".split(" "),function(h,k,p,l,q,r,t,u,v,w){function m(a,b,c){const d={context:{...c,layerContainerType:"operational-layers"}};a.portalItem&&(d.context.portal=a.portalItem.portal||t.getDefault());return(new Promise((e,f)=>h(["../../layers/support/layersCreator"], e,f))).then(({populateOperationalLayers:e})=>{const f=[];var g=b.operationalLayers;g?.length&&f.push(e(a.layers,g,d));g={...d,context:{...d.context,layerContainerType:"tables"},defaultLayerType:"ArcGISFeatureLayer"};const n=b.tables;n?.length&&f.push(e(a.tables,n,g));return Promise.allSettled(f).then(()=>{})})}async function x(a,b,c){await c.load().catch(f=>{throw new l(`${a.name}:load-portal-item`,"Failed to load portal item",{error:f});});if(c.type!==a.itemType)throw new l(`${a.name}:invalid-portal-item`, `Invalid portal item type '${c.type}', expected '${a.itemType}'`,{type:c.type});var d=await c.fetchData();b.resourceInfo=d;const e=u.createForItemRead(c,a.origin);await y(a,b,d,e);b.resourceReferences={portalItem:c,paths:e.readResourcePaths};if(c=await z(b.initialViewProperties,c,q.getLogger(b)))d=b.initialViewProperties?.clone()??a.createInitialViewProperties(),d.viewpoint=c,b.initialViewProperties=d}function y(a,b,c,d){const e=a.parseVersion(c.version||"",a.name);a.currentVersion.validate(e);c.version= `${e.major}.${e.minor}`;b.read(c,d);return m(b,c,d)}async function z(a,b,c){return a?.viewpoint?.targetGeometry?null:(a=await A(a,b,c))?new p({targetGeometry:a}):null}async function A(a,b,c){a=a?.spatialReference;const d=b?.extent;if(!a||!d)return null;if(a.isWGS84)return d.clone();if(a.isWebMercator)return r.geographicToWebMercator(d);const {getGeometryServiceURL:e}=await new Promise((f,g)=>h(["../../portal/support/geometryServiceUtils"],f,g));try{const f=await e(b),g=new w({geometries:[d],outSpatialReference:a}); return(await v.project(f,g))[0]}catch(f){c.error("Error projecting item's extent:",f)}return null}k.loadFromSource=function(a,b){return b.resourceInfo?m(b,b.resourceInfo,{origin:a.origin}):b.portalItem?.id?x(a,b,b.portalItem):Promise.resolve()};Object.defineProperty(k,Symbol.toStringTag,{value:"Module"})});