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.
18 lines
7.8 KiB
18 lines
7.8 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("require exports ../../core/Error ../../core/MultiOriginJSONSupport ../../core/reactiveUtils ../../core/urlUtils ../../core/accessorSupport/originUtils ../../geometry/SpatialReference ../../geometry/support/spatialReferenceUtils ../../geometry/support/webMercatorUtils ../../layers/support/arcgisLayerUrl ../../layers/support/layerUtils ../../portal/Portal ../../portal/PortalItem ../../portal/support/jsonContext ../../portal/support/portalItemUtils ../../rest/geometryService/project ../../rest/support/ProjectParameters ../../support/basemapUtils ./resourceUtils ./saveAPIKeyUtils ./saveUtils".split(" "), |
|
function(E,l,k,F,n,t,G,H,I,J,K,p,L,M,N,e,O,P,q,u,v,m){async function r(b,a){a=N.createForItemWrite(a,"web-map",!0);b=b.write({},a);await Promise.all(a.resources.pendingOperations);return{json:b,jsonContext:a}}function Q(b,a){if(!a.portalItem)throw new k(`${b.name}:portal-item-not-set`,"Portal item to save to has not been set on the WebMap");v.validateSaveAPIKey(a.portalItem);w(b,a.portalItem)}function w(b,a){if(a.type!==b.itemType)throw new k(`${b.name}:portal-item-wrong-type`,`Portal item needs to have type "${b.itemType}"`); |
|
}async function x(b,a){if(!a.basemap?.baseLayers.length)throw new k(`${b.name}:save`,"Map does not have a valid basemap with a base layer.");let c=null;await n.whenOnce(()=>{const d=q.findSpatialReference(a.initialViewProperties,a.basemap);c=d.spatialReference;return!d.updating});if(!I.equals(c,a.initialViewProperties.spatialReference))throw new k(`${b.name}:save`,"The spatial reference of the basemap is not compatible with the one from the map.",{expected:a.initialViewProperties.spatialReference, |
|
actual:c});}function R(b,a){a=M.from(a);a.id&&(a=a.clone(),a.id=null);a.type||(a.type=b.itemType);a.portal||(a.portal=L.getDefault());v.validateSaveAPIKey(a);w(b,a);return a}function y(b){const a=[];b.basemap&&a.push(b.basemap.load());b.ground&&a.push(b.ground.load());return Promise.allSettled(a).then(()=>{})}async function z(b,a){a.extent=await S(b.portalItem,b.initialViewProperties.viewpoint.targetGeometry);await T(b,a)}async function U(b,a){e.removeTypeKeyword(a,"CollectorDisabled");e.removeTypeKeyword(a, |
|
"FieldMapsDisabled");e.removeTypeKeyword(a,e.typeKeyword.METADATA);e.removeTypeKeyword(a,"OfflineDisabled");e.removeTypeKeyword(a,"Offline Map Areas");e.removeTypeKeyword(a,"Workforce Dispatcher");e.removeTypeKeyword(a,"Workforce Project");e.removeTypeKeyword(a,"Workforce Worker");await z(b,a)}async function T(b,a){e.addTypeKeyword(a,V);await W(b);X(b,a);Y(b,a);Z(b,a);aa(b,a);ba(b,a);ca(b,a);a.typeKeywords&&(a.typeKeywords=a.typeKeywords.filter((c,d,f)=>f.indexOf(c)===d))}function W(b){b=b.allLayers.concat(b.allTables).map(a=> |
|
a.load()).toArray();return Promise.allSettled(b).then(()=>{})}function A(b){return b.allLayers.concat(b.allTables).some(a=>a.loaded&&p.isLayerWithFeatureLayerSource(a)&&a.capabilities.operations.supportsEditing&&a.editingEnabled&&("subtype-group"!==a.type||a.sublayers.some(c=>c.editingEnabled)))}function da(b){return b.allLayers.concat(b.allTables).filter(a=>"group"!==a.type).every(a=>{var c;if(c=a.loaded)(c=p.isLayerWithFeatureLayerSource(a)&&a.capabilities.operations.supportsSync)||(c=(p.isFeatureCollectionLayer(a)|| |
|
"map-notes"===a.type||"route"===a.type)&&!a.portalItem),c=c||("tile"===a.type||"vector-tile"===a.type)&&(a.capabilities.operations.supportsExportTiles||ea(a)||q.isDeveloperBasemapLayer(a))&&a.spatialReference.equals(b.initialViewProperties.spatialReference);return c})}function X(b,a){e.hasTypeKeyword(a,"CollectorDisabled")||e.hasTypeKeyword(a,"Workforce Project")||e.hasTypeKeyword(a,"Workforce Worker")||e.hasTypeKeyword(a,"Workforce Dispatcher")||!A(b)?e.removeTypeKeyword(a,"Collector"):e.addTypeKeyword(a, |
|
"Collector")}function Y(b,a){A(b)?e.addTypeKeyword(a,"Data Editing"):e.removeTypeKeyword(a,"Data Editing")}function Z(b,a){!e.hasTypeKeyword(a,"OfflineDisabled")&&da(b)?e.addTypeKeyword(a,"Offline"):e.removeTypeKeyword(a,"Offline")}function aa(b,a){q.hasDeveloperBasemapLayer(b.basemap)?e.addTypeKeyword(a,B):e.removeTypeKeyword(a,B)}function ba(b,a){b.utilityNetworks?.length?e.addTypeKeyword(a,"UtilityNetwork"):e.removeTypeKeyword(a,"UtilityNetwork")}function ca(b,a){b.ipsInfo?e.addTypeKeyword(a,"IPS"): |
|
e.removeTypeKeyword(a,"IPS")}async function S(b,a){a=a.clone().normalize();let c;if(1<a.length)for(const d of a)c?d.width>c.width&&(c=d):c=d;else c=a[0];return fa(b,c)}async function fa(b,a){var c=a.spatialReference;if(c.isWGS84)return a.clone();if(c.isWebMercator)return J.webMercatorToGeographic(a);({getGeometryServiceURL:c}=await new Promise((d,f)=>E(["../../portal/support/geometryServiceUtils"],d,f)));b=await c(b);a=new P({geometries:[a],outSpatialReference:H.WGS84});return(await O.project(b,a))[0]} |
|
function ea(b){return"tile"===b.type?K.isServerOrServicesAGOLUrl(b.url)&&ha.some(a=>b.url?.toLowerCase().includes("/"+a+"/")):!1}async function ia(b,a,c,d,f){await c.update({data:d});C(b,a,c,d,f)}async function ja(b,a,c,d,f,g){var h=a.portalItem;h={item:h,authenticated:!(!h?.id||!h.portal.user)};const D=c.portal;await D.signIn();const {copyAllowed:ka,itemReloaded:la}=await ma(h,D);h.authenticated||(h.authenticated=la);if(!ka)throw new k(`${b.name}:save-as-copy-not-allowed`,"Owner of this map does not allow others to save a copy"); |
|
g=await na(c,h,d,g);a.portalItem=c;C(b,a,c,d,f);return g}async function ma(b,a){const {item:c,authenticated:d}=b;if(c?.id&&c.typeKeywords?.includes("useOnly")){if(c.portal.portalHostname!==a.portalHostname)return{copyAllowed:!1,itemReloaded:!1};d||await c.reload();return{copyAllowed:"admin"===c.itemControl||"update"===c.itemControl,itemReloaded:!0}}return{copyAllowed:!0,itemReloaded:!1}}async function na(b,a,c,d){var f=b.portal;({item:a}=a);const {folder:g,copyAllResources:h}=d;d=!1;h&&a?.id&&t.hasSameCanonicalPortal(a.portal.url, |
|
f.url)&&2023<=parseInt(a.portal.currentVersion,10)&&({total:d}=await a.fetchResources(),d=!!d);d?(f=await a.copy({copyResources:"all",folder:g}),b.id=f.id,b.portal=f.portal,f=b.toJSON(),await b.load(),b.read(f),await b.update({data:c})):await f.user?.addItem({item:b,folder:g,data:c});return d}function C(b,a,c,d,f){F.MultiOriginJSONSupport.prototype.read.call(a,{version:d.version,authoringApp:d.authoringApp,authoringAppVersion:d.authoringAppVersion},{origin:b.origin,ignoreDefaults:!0,url:c.itemUrl? |
|
t.urlToObject(c.itemUrl):void 0});G.updateOrigins(f);a.resourceInfo=d}const ha="NatGeo_World_Map Ocean_Basemap USA_Topo_Maps World_Imagery World_Street_Map World_Terrain_Base World_Topo_Map World_Hillshade Canvas/World_Light_Gray_Base Canvas/World_Light_Gray_Reference Canvas/World_Dark_Gray_Base Canvas/World_Dark_Gray_Reference Ocean/World_Ocean_Base Ocean/World_Ocean_Reference Reference/World_Boundaries_and_Places Reference/World_Reference_Overlay Reference/World_Transportation".split(" ").map(b=> |
|
b.toLowerCase()),V=e.typeKeyword.JSAPI,B=e.typeKeyword.DEVELOPER_BASEMAP;l.createJSON=r;l.save=async function(b,a,c){c??={};Q(b,a);await n.whenOnce(()=>!a.updatingFromView);await a.load();await y(a);await m.beforeSave(a);await x(b,a);const d=a.portalItem,{json:f,jsonContext:g}=await r(a,d);m.evaluateWriteErrors(g,{errorName:`${b.name}:save`},c);await z(a,d);await ia(b,a,d,f,g);await Promise.all([a.updateItemThumbnail(),u.saveResources(a.resourceReferences,g)]);return d};l.saveAs=async function(b, |
|
a,c,d){d??={};c=R(b,c);await n.whenOnce(()=>!a.updatingFromView);await a.load();await y(a);await m.beforeSave(a);await x(b,a);const {json:f,jsonContext:g}=await r(a,c);m.evaluateWriteErrors(g,{errorName:`${b.name}:save`},d);await U(a,c);const h=a.getThumbnailState();await ja(b,a,c,f,g,d)&&(a.resourceReferences.portalItem=c);a.restoreThumbnailFromState(h);await Promise.all([a.updateItemThumbnail(),u.saveResources(a.resourceReferences,g)]);return c};Object.defineProperty(l,Symbol.toStringTag,{value:"Module"})}); |