@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
1 lines • 9.28 kB
JavaScript
;(self.webpackChunkRemoteClient=self.webpackChunkRemoteClient||[]).push([[2958,5804],{13069(e,t,r){r.d(t,{AG:()=>i,lk:()=>o,vD:()=>n,yS:()=>s});const a="randomUUID"in crypto;function o(){if(a)return crypto.randomUUID();const e=crypto.getRandomValues(new Uint16Array(8));e[3]=4095&e[3]|16384,e[4]=16383&e[4]|32768;const t=t=>e[t].toString(16).padStart(4,"0");return t(0)+t(1)+"-"+t(2)+"-"+t(3)+"-"+t(4)+"-"+t(5)+t(6)+t(7)}function s(){return`{${o().toUpperCase()}}`}function n(){return`{${o()}}`}function i(e){const t=e.toUpperCase();return e.startsWith("{")?t:`{${t}}`}},15804(e,t,r){r.d(t,{addOrUpdateResources:()=>i,bg:()=>f,cL:()=>p,fetchResources:()=>n,removeAllResources:()=>u,removeResource:()=>c});var a=r(11254),o=r(49186),s=r(84952);async function n(e,t={},r){await e.load(r);const a=(0,s.fj)(e.itemUrl,"resources"),{start:o=1,num:n=10,sortOrder:i="asc",sortField:c="resource"}=t,u={query:{start:o,num:n,sortOrder:i,sortField:c,token:e.apiKey},signal:r?.signal},l=await e.portal.request(a,u);return{total:l.total,nextStart:l.nextStart,resources:l.resources.map(({created:t,size:r,resource:a})=>({created:new Date(t),size:r,resource:e.resourceFromPath(a)}))}}async function i(e,t,r,a){const n=new Map;for(const{resource:e,content:a,compress:s,access:i}of t){if(!e.hasPath())throw new o.A(`portal-item-resource-${r}:invalid-path`,"Resource does not have a valid path");const[t,c]=l(e.path),u=`${t}/${s??""}/${i??""}`;n.has(u)||n.set(u,{prefix:t,compress:s,access:i,files:[]}),n.get(u).files.push({fileName:c,content:a})}await e.load(a);const i=(0,s.fj)(e.userItemUrl,"add"===r?"addResources":"updateResources");for(const{prefix:t,compress:r,access:o,files:s}of n.values()){const n=25;for(let c=0;c<s.length;c+=n){const u=s.slice(c,c+n),l=new FormData;t&&"."!==t&&l.append("resourcesPrefix",t),r&&l.append("compress","true"),o&&l.append("access",o);let p=0;for(const{fileName:e,content:t}of u)l.append("file"+ ++p,t,e);l.append("f","json"),await e.portal.request(i,{method:"post",body:l,signal:a?.signal})}}}async function c(e,t,r){if(!t.hasPath())throw new o.A("portal-item-resources-remove:invalid-path","Resource does not have a valid path");await e.load(r);const a=(0,s.fj)(e.userItemUrl,"removeResources");await e.portal.request(a,{method:"post",query:{resource:t.path},signal:r?.signal}),t.portalItem=null}async function u(e,t){await e.load(t);const r=(0,s.fj)(e.userItemUrl,"removeResources");return e.portal.request(r,{method:"post",query:{deleteAll:!0},signal:t?.signal})}function l(e){const t=e.lastIndexOf("/");return-1===t?[".",e]:[e.slice(0,t),e.slice(t+1)]}async function p(e){return"blob"===e.type?e.blob:"json"===e.type?new Blob([e.jsonString],{type:"application/json"}):(await(0,a.A)(e.url,{responseType:"blob"})).data}function f(e,t){if(!e.hasPath())return null;const[r,,a]=function(e){const[t,r]=function(e){const t=(0,s.Zo)(e);return null==t?[e,""]:[e.slice(0,e.length-t.length-1),`.${t}`]}(e),[a,o]=l(t);return[a,o,r]}(e.path);return e.portalItem.resourceFromPath((0,s.fj)(r,t+a))}},32958(e,t,r){r.d(t,{save:()=>m,saveAs:()=>h});var a=r(71530),o=r(88788),s=r(10407),n=r(91682);const i="Group Layer",c=s.mm.GROUP_LAYER_MAP;function u(e){return{isValid:"group"===e.type,errorMessage:"Layer.type should be 'group'"}}function l(e){return{isValid:(0,s.Y)(e,c),errorMessage:`Layer.portalItem.typeKeywords should have '${c}'`}}function p(e,t){return{...(0,o.m)(e,"web-map",!0),initiator:t}}function f(e){const t=e.layerJSON;return Promise.resolve(t&&Object.keys(t).length?t:null)}async function d(e,t){t.title||=e.title,(0,s.OM)(t,s.mm.METADATA),(0,s.LG)(t,c)}async function m(e,t){return(0,a.UN)({layer:e,itemType:i,validateLayer:u,validateItem:l,createJSONContext:t=>p(t,e),createItemData:f,errorNamePrefix:"group-layer-save",saveResources:async(t,r)=>(e.sourceIsPortalItem||await t.removeAllResources().catch(()=>{}),(0,n.r)(e.resourceReferences,r))},t)}async function h(e,t,r){return(0,a.Uh)({layer:e,itemType:i,validateLayer:u,createJSONContext:t=>p(t,e),createItemData:f,errorNamePrefix:"group-layer-save-as",newItem:t,setItemProperties:d,saveResources:(t,r)=>(0,n.r)(e.resourceReferences,r)},r)}},46130(e,t,r){r.d(t,{v:()=>o});var a=r(76553);function o(e){e?.writtenProperties&&e.writtenProperties.forEach(({target:e,propName:t,newOrigin:r})=>{(0,a.H)(e)&&r&&e.originOf(t)!==r&&e.updateOrigin(t,r)})}},71530(e,t,r){r.d(t,{UN:()=>v,Uh:()=>g});var a=r(49186),o=r(46130),s=r(20655),n=r(80812),i=r(88788),c=r(10407),u=r(26121);async function l(e){const{layer:t,errorNamePrefix:r,validateLayer:o}=e;await t.load(),function(e,t,r){const o=r(e);if(!o.isValid)throw new a.A(`${t}:invalid-parameters`,o.errorMessage,{layer:e})}(t,r,o)}function p(e,t){return`Layer (title: ${e.title}, id: ${e.id}) of type '${e.declaredClass}' ${t}`}function f(e){const{item:t,errorNamePrefix:r,layer:o,validateItem:s}=e;if(function(e){const{item:t,itemType:r,additionalItemType:o,errorNamePrefix:s,layer:n}=e,i=[r];if(o&&i.push(o),!i.includes(t.type)){const e=i.map(e=>`'${e}'`).join(", ");throw new a.A(`${s}:portal-item-wrong-type`,`Portal item type should be one of: "${e}"`,{item:t,layer:n})}}(e),s){const e=s(t);if(!e.isValid)throw new a.A(`${r}:invalid-parameters`,e.errorMessage,{layer:o})}}function d(e){const{layer:t,errorNamePrefix:r}=e,{portalItem:o}=t;if(!o)throw new a.A(`${r}:portal-item-not-set`,p(t,"requires the portalItem property to be set"));if(!o.loaded)throw new a.A(`${r}:portal-item-not-loaded`,p(t,"cannot be saved to a portal item that does not exist or is inaccessible"));f({...e,item:o})}function m(e){const{newItem:t,itemType:r}=e;let a=n.default.from(t);return a.id&&(a=a.clone(),a.id=null),a.type??=r,a.portal??=s.A.getDefault(),f({...e,item:a}),a}function h(e){return(0,i.m)(e,"portal-item")}async function y(e,t,r){"beforeSave"in e&&"function"==typeof e.beforeSave&&await e.beforeSave();const a=e.write({},t);return await Promise.all(t.resources?.pendingOperations??[]),(0,u.ci)(t,{errorName:"layer-write:unsupported"},r),a}function w(e){(0,c.LG)(e,c.mm.JSAPI),e.typeKeywords&&(e.typeKeywords=e.typeKeywords.filter((e,t,r)=>r.indexOf(e)===t))}async function v(e,t){const{layer:r,createItemData:a,createJSONContext:s,setItemProperties:n,saveResources:i,supplementalUnsupportedErrors:c}=e;await l(e),d(e);const u=r.portalItem,p=s?s(u):h(u),f=await y(r,p,{...t,supplementalUnsupportedErrors:c}),m=await a({layer:r,layerJSON:f},u);return await(n?.(r,u,m)),w(u),await u.update({data:m}),(0,o.v)(p),await(i?.(u,p)),u}async function g(e,t){const{layer:r,createItemData:a,createJSONContext:s,setItemProperties:n,saveResources:i,supplementalUnsupportedErrors:c}=e;await l(e);const u=m(e),p=s?s(u):h(u),f=await y(r,p,{...t,supplementalUnsupportedErrors:c}),d=await a({layer:r,layerJSON:f},u);return await n(r,u,d),w(u),await async function(e,t,r){const a=e.portal;await a.signIn(),await a.user.addItem({item:e,data:t,folder:r?.folder})}(u,d,t),r.portalItem=u,(0,o.v)(p),await(i?.(u,p)),u}},76553(e,t,r){function a(e){return e&&"getAtOrigin"in e&&"originOf"in e}r.d(t,{H:()=>a})},88788(e,t,r){r.d(t,{m:()=>n,v:()=>s});var a=r(84952),o=r(20655);function s(e,t){return{...i(e,t),readResourcePaths:[]}}function n(e,t,r){const o=(0,a.An)(e.itemUrl);return{...i(e,t),messages:[],writtenProperties:[],blockedRelativeUrls:[],verifyItemRelativeUrls:o?{rootPath:o.path,writtenUrls:[]}:null,resources:r?{toAdd:[],toUpdate:[],toKeep:[],pendingOperations:[]}:null}}function i(e,t){return{origin:t,url:(0,a.An)(e.itemUrl),portal:e.portal||o.A.getDefault(),portalItem:e}}},91682(e,t,r){r.d(t,{S:()=>c,r:()=>i});var a=r(49186),o=r(74887),s=r(13069),n=r(15804);async function i(e,t,r){const a=await u(e,t,r);await l(a,t,r)}async function c(e,t,r,a,o){const s=await u(r,a,o);await e.update({data:t}),await l(s,a,o)}async function u(e,t,i){if(!t?.resources)return;const c=t.portalItem===e.portalItem?new Set(e.paths):new Set;e.paths.length=0,e.portalItem=t.portalItem;const u=new Set(t.resources.toKeep.map(e=>e.resource.path)),l=new Set,p=[];u.forEach(t=>{c.delete(t),e.paths.push(t)});const f=[],d=[],m=[];for(const r of t.resources.toUpdate)if(c.delete(r.resource.path),u.has(r.resource.path)||l.has(r.resource.path)){const{resource:t,content:a,finish:o}=r,i=(0,n.bg)(t,(0,s.lk)());e.paths.push(i.path),f.push({resource:i,content:await(0,n.cL)(a),compress:r.compress}),o&&m.push(()=>o(i))}else{e.paths.push(r.resource.path),d.push({resource:r.resource,content:await(0,n.cL)(r.content),compress:r.compress});const t=r.finish;t&&m.push(()=>t(r.resource)),l.add(r.resource.path)}for(const r of t.resources.toAdd)if(e.paths.push(r.resource.path),c.has(r.resource.path))c.delete(r.resource.path);else{f.push({resource:r.resource,content:await(0,n.cL)(r.content),compress:r.compress});const e=r.finish;e&&m.push(()=>e(r.resource))}if(f.length||d.length){const{addOrUpdateResources:e}=await Promise.resolve().then(r.bind(r,15804));await e(t.portalItem,f,"add",i),await e(t.portalItem,d,"update",i)}if(m.forEach(e=>e()),0===p.length)return c;const h=await(0,o.Ol)(p);if((0,o.Te)(i),h.length>0)throw new a.A("save:resources","Failed to save one or more resources",{errors:h});return c}async function l(e,t,r){if(!e||!t.portalItem)return;const a=[];for(const o of e){const e=t.portalItem.resourceFromPath(o);a.push(e.portalItem.removeResource(e,r))}await(0,o.Lx)(a)}}}]);