@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
1 lines • 9.14 kB
JavaScript
;(self.webpackChunkRemoteClient=self.webpackChunkRemoteClient||[]).push([[5740],{26121(e,t,r){r.d(t,{ci:()=>i,dL:()=>o});var a=r(49186),n=(r(77548),r(59923));async function o(e){const t=[];for(const r of e.allLayers)if("beforeSave"in r&&"function"==typeof r.beforeSave){const e=r.beforeSave();e&&t.push(e)}await Promise.allSettled(t)}function i(e,t,r){let o=(e.messages??[]).filter(({type:e})=>"error"===e).map(({name:e,message:t,details:r})=>new a.A(e,t,r));if(e.blockedRelativeUrls&&(o=o.concat(e.blockedRelativeUrls.map(e=>(0,n.GL)("url",`Relative url '${e}' is not supported`)))),r){const{ignoreUnsupported:e,supplementalUnsupportedErrors:t=[],requiredPropertyChecksDisabled:a}=r;e&&(o=o.filter(({name:e})=>!(n.MG.has(e)||t.includes(e)))),a&&(o=o.filter(e=>"web-document-write:property-required"!==e.name))}if(o.length>0)throw new a.A(t.errorName,"Failed to save due to unsupported or invalid content. See 'details.errors' for more detailed information",{errors:o})}},33359(e,t,r){r.d(t,{save:()=>N,saveAs:()=>R});var a=r(4576),n=(r(49186),r(71530)),o=r(60694),i=r(23154),s=r(77548),l=r(88788),u=r(10407);const c="Feature Service",p="feature-layer-utils",y=`${p}-save`,d=`${p}-save-as`;function m(e){return{isValid:(0,s.W_)(e)&&(!("dynamicDataSource"in e)||!e.dynamicDataSource),errorMessage:"Feature layer should be a layer or table in a map or feature service"}}function f(e,t){const r=(0,l.m)(e,"portal-item");return t?.isTable&&(r.layerContainerType="tables"),r}function h(e){const t=[],r=[];for(const{layer:a,layerJSON:n}of e)w(a)?r.push(n):t.push(n);return{layers:t,tables:r}}function w(e,t){return e.isTable}function b(e){return h([e])}async function v(e,t){return/\/\d+\/?$/.test(e.url)?b(t[0]):async function(e,t){if(e.reverse(),!t)return h(e);const a=await async function(e,t){let a=await e.fetchData("json");if(function(e){return!!(e&&Array.isArray(e.layers)&&Array.isArray(e.tables))}(a)&&!(0,u.Y)(e,u.mm.HOSTED_SERVICE))return a;a||={},function(e){e.layers||=[],e.tables||=[]}(a);const{layer:{url:n,customParameters:o,apiKey:s}}=t[0];return await async function(e,t,a){const{url:n,customParameters:o,apiKey:s}=t,{serviceJSON:l,layersJSON:u}=await(0,i.Q)(n,{customParameters:o,apiKey:s}),c=I(e.layers,l.layers,a),p=I(e.tables,l.tables,a);e.layers=c.itemResources,e.tables=p.itemResources;const y=[...c.added,...p.added],d=u?[...u.layers,...u.tables]:[];await async function(e,t,a,n){const o=await async function(e){const t=[];e.forEach(({type:e})=>{switch((0,i.K)(e)){case"CatalogLayer":t.push(Promise.all([r.e(1214),r.e(893),r.e(3636),r.e(1072)]).then(r.bind(r,83508)).then(e=>e.default));break;case"FeatureLayer":t.push(Promise.all([r.e(9953),r.e(1214),r.e(1017),r.e(9784),r.e(3447)]).then(r.bind(r,29784)).then(e=>e.default));break;case"OrientedImageryLayer":t.push(Promise.all([r.e(9953),r.e(1214),r.e(1017),r.e(9784),r.e(8599)]).then(r.bind(r,16852)).then(e=>e.default))}});const a=await Promise.all(t),n=new Map;return e.forEach(({type:e},t)=>{n.set(e,a[t])}),n}(t),s=t.map(({id:e,type:t})=>new(o.get(t))({url:a,layerId:e,sourceJSON:n.find(({id:t})=>t===e)}));await Promise.allSettled(s.map(e=>e.load())),s.forEach(t=>{const{layerId:r,loaded:a,defaultPopupTemplate:n}=t;if(!a||null==n)return;const o={id:r,popupInfo:n.toJSON()};P(t,"ArcGISFeatureLayer"===t.operationalLayerType?o:{...o,layerType:t.operationalLayerType},e)})}(e,y,n,d)}(a,{url:n??"",customParameters:o,apiKey:s},t.map(e=>e.layer.layerId)),a}(t,e);for(const t of e)P(t.layer,t.layerJSON,a);return function(e,t){const r=[],a=[];for(const{layer:e}of t){const{isTable:t,layerId:n}=e;t?a.push(n):r.push(n)}S(e.layers,r),S(e.tables,a)}(a,e),a}(t,e)}function S(e,t){if(e.length<2)return;const r=[];for(const{id:t}of e)r.push(t);(0,a.aI)(r.sort(g),t.slice().sort(g))&&e.sort((e,r)=>{const a=t.indexOf(e.id),n=t.indexOf(r.id);return a<n?-1:a>n?1:0})}function g(e,t){return e<t?-1:e>t?1:0}function I(e,t,r){const n=(0,a.iv)(e,t,(e,t)=>e.id===t.id);e=e.filter(e=>!n.removed.some(t=>t.id===e.id));const o=n.added;return o.forEach(({id:t})=>{e.push({id:t})}),{itemResources:e,added:o.filter(({id:e})=>!r.includes(e))}}function P(e,t,r){e.isTable?T(r.tables,t):T(r.layers,t)}function T(e,t){const r=e.findIndex(({id:e})=>e===t.id);-1===r?e.push(t):e[r]=t}function A(e){if(!("layerType"in e))return!!e.charts?.length;switch(e.layerType){case"OrientedImageryLayer":return!!e.charts?.length;case"SubtypeGroupLayer":return!!e.layers.some(e=>!!e.charts?.length);case"SubtypeGroupTable":return!!e.tables.some(e=>!!e.charts?.length);case"CatalogLayer":return!!e.footprintLayer?.charts?.length}}function O(e,t){let r=0,a=0,n=0,o=0;for(const e of[...t.layers,...t.tables])if(A(e)&&o++,"layerType"in e)switch(e.layerType){case"OrientedImageryLayer":r++;break;case"SubtypeGroupLayer":a++;break;case"SubtypeGroupTable":n++}(0,u.Sm)(e,u.mm.ORIENTED_IMAGERY_LAYER,r>0),(0,u.Sm)(e,u.mm.SUBTYPE_GROUP_LAYER,a>0),(0,u.Sm)(e,u.mm.SUBTYPE_GROUP_TABLE,n>0),(0,u.Sm)(e,u.mm.CHARTS,o>0)}async function L(e,t,r){O(t,r)}async function E(e,t,r){const{url:a,layerId:n,title:i,fullExtent:s,isTable:l}=e,c=(0,o.qg)(a);t.url=("FeatureServer"===c?.serverType?a:`${a}/${n}`)??null,t.title||=i,t.extent=null,l||null==s||(t.extent=await(0,u.sQ)(s)),function(e,t,r){(0,u.OM)(t,u.mm.METADATA),(0,u.Sm)(t,u.mm.MULTI_LAYER,e.length>1),(0,u.Sm)(t,u.mm.SINGLE_LAYER,1===e.length),(0,u.Sm)(t,u.mm.TABLE,r.tables.length>0&&0===r.layers.length),O(t,r)}([e],t,r)}async function N(e,t){return(0,n.UN)({layer:e,itemType:c,validateLayer:m,createJSONContext:t=>f(t,e),createItemData:(e,t)=>v(t,[e]),errorNamePrefix:y,setItemProperties:L},t)}async function R(e,t,r){return(0,n.Uh)({layer:e,itemType:c,validateLayer:m,createJSONContext:t=>f(t,e),createItemData:(e,t)=>Promise.resolve(b(e)),errorNamePrefix:d,newItem:t,setItemProperties:E},r)}},46130(e,t,r){r.d(t,{v:()=>n});var a=r(76553);function n(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:()=>b,Uh:()=>v});var a=r(49186),n=r(46130),o=r(20655),i=r(80812),s=r(88788),l=r(10407),u=r(26121);async function c(e){const{layer:t,errorNamePrefix:r,validateLayer:n}=e;await t.load(),function(e,t,r){const n=r(e);if(!n.isValid)throw new a.A(`${t}:invalid-parameters`,n.errorMessage,{layer:e})}(t,r,n)}function p(e,t){return`Layer (title: ${e.title}, id: ${e.id}) of type '${e.declaredClass}' ${t}`}function y(e){const{item:t,errorNamePrefix:r,layer:n,validateItem:o}=e;if(function(e){const{item:t,itemType:r,additionalItemType:n,errorNamePrefix:o,layer:i}=e,s=[r];if(n&&s.push(n),!s.includes(t.type)){const e=s.map(e=>`'${e}'`).join(", ");throw new a.A(`${o}:portal-item-wrong-type`,`Portal item type should be one of: "${e}"`,{item:t,layer:i})}}(e),o){const e=o(t);if(!e.isValid)throw new a.A(`${r}:invalid-parameters`,e.errorMessage,{layer:n})}}function d(e){const{layer:t,errorNamePrefix:r}=e,{portalItem:n}=t;if(!n)throw new a.A(`${r}:portal-item-not-set`,p(t,"requires the portalItem property to be set"));if(!n.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"));y({...e,item:n})}function m(e){const{newItem:t,itemType:r}=e;let a=i.default.from(t);return a.id&&(a=a.clone(),a.id=null),a.type??=r,a.portal??=o.A.getDefault(),y({...e,item:a}),a}function f(e){return(0,s.m)(e,"portal-item")}async function h(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,l.LG)(e,l.mm.JSAPI),e.typeKeywords&&(e.typeKeywords=e.typeKeywords.filter((e,t,r)=>r.indexOf(e)===t))}async function b(e,t){const{layer:r,createItemData:a,createJSONContext:o,setItemProperties:i,saveResources:s,supplementalUnsupportedErrors:l}=e;await c(e),d(e);const u=r.portalItem,p=o?o(u):f(u),y=await h(r,p,{...t,supplementalUnsupportedErrors:l}),m=await a({layer:r,layerJSON:y},u);return await(i?.(r,u,m)),w(u),await u.update({data:m}),(0,n.v)(p),await(s?.(u,p)),u}async function v(e,t){const{layer:r,createItemData:a,createJSONContext:o,setItemProperties:i,saveResources:s,supplementalUnsupportedErrors:l}=e;await c(e);const u=m(e),p=o?o(u):f(u),y=await h(r,p,{...t,supplementalUnsupportedErrors:l}),d=await a({layer:r,layerJSON:y},u);return await i(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,n.v)(p),await(s?.(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:()=>i,v:()=>o});var a=r(84952),n=r(20655);function o(e,t){return{...s(e,t),readResourcePaths:[]}}function i(e,t,r){const n=(0,a.An)(e.itemUrl);return{...s(e,t),messages:[],writtenProperties:[],blockedRelativeUrls:[],verifyItemRelativeUrls:n?{rootPath:n.path,writtenUrls:[]}:null,resources:r?{toAdd:[],toUpdate:[],toKeep:[],pendingOperations:[]}:null}}function s(e,t){return{origin:t,url:(0,a.An)(e.itemUrl),portal:e.portal||n.A.getDefault(),portalItem:e}}}}]);