@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
1 lines • 8.88 kB
JavaScript
;(self.webpackChunkRemoteClient=self.webpackChunkRemoteClient||[]).push([[5740],{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)}))}},76553:(e,t,r)=>{function a(e){return e&&"getAtOrigin"in e&&"originOf"in e}r.d(t,{H:()=>a})},33359:(e,t,r)=>{r.d(t,{save:()=>N,saveAs:()=>E});var a=r(4576),n=(r(44208),r(49186),r(71530)),o=r(60694),i=r(23154),s=r(83531),l=r(88788),u=r(10407);const c="Feature Service",p="feature-layer-utils",d=`${p}-save`,m=`${p}-save-as`;function y(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 w(e){const t=[],r=[];for(const{layer:a,layerJSON:n}of e)a.isTable?r.push(n):t.push(n);return{layers:t,tables:r}}function h(e){return w([e])}async function b(e,t){return/\/\d+\/?$/.test(e.url)?h(t[0]):async function(e,t){if(e.reverse(),!t)return w(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))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 d=[...c.added,...p.added],m=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(3112),r.e(364),r.e(8628),r.e(2593),r.e(4196)]).then(r.bind(r,79003)).then((e=>e.default)));break;case"FeatureLayer":t.push(Promise.all([r.e(3112),r.e(9953),r.e(3029),r.e(3600),r.e(9340)]).then(r.bind(r,13600)).then((e=>e.default)));break;case"OrientedImageryLayer":t.push(Promise.all([r.e(3112),r.e(9953),r.e(3029),r.e(3600),r.e(8330)]).then(r.bind(r,97927)).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()};"ArcGISFeatureLayer"!==t.operationalLayerType&&(o.layerType=t.operationalLayerType),P(t,o,e)}))}(e,d,n,m)}(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)}v(e.layers,r),v(e.tables,a)}(a,e),a}(t,e)}function v(e,t){if(e.length<2)return;const r=[];for(const{id:t}of e)r.push(t);(0,a.aI)(r.sort(S),t.slice().sort(S))&&e.sort(((e,r)=>{const a=t.indexOf(e.id),n=t.indexOf(r.id);return a<n?-1:a>n?1:0}))}function S(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?g(r.tables,t):g(r.layers,t)}function g(e,t){const r=e.findIndex((({id:e})=>e===t.id));-1===r?e.push(t):e[r]=t}function A(e,t){let r=0,a=0,n=0;for(const{layerType:e}of[...t.layers,...t.tables])switch(e){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)}async function O(e,t,r){A(t,r)}async function T(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),A(t,r)}([e],t,r)}async function N(e,t){return(0,n.UN)({layer:e,itemType:c,validateLayer:y,createJSONContext:t=>f(t,e),createItemData:(e,t)=>b(t,[e]),errorNamePrefix:d,setItemProperties:O},t)}async function E(e,t,r){return(0,n.Uh)({layer:e,itemType:c,validateLayer:y,createJSONContext:t=>f(t,e),createItemData:(e,t)=>Promise.resolve(h(e)),errorNamePrefix:m,newItem:t,setItemProperties: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 d(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 m(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"));d({...e,item:n})}function y(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(),d({...e,item:a}),a}function f(e){return(0,s.m)(e,"portal-item")}async function w(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.c)(t,{errorName:"layer-write:unsupported"},r),a}function h(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),m(e);const u=r.portalItem,p=o?o(u):f(u),d=await w(r,p,{...t,supplementalUnsupportedErrors:l}),y=await a({layer:r,layerJSON:d},u);return await(i?.(r,u,y)),h(u),await u.update({data:y}),(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=y(e),p=o?o(u):f(u),d=await w(r,p,{...t,supplementalUnsupportedErrors:l}),m=await a({layer:r,layerJSON:d},u);return await i(r,u,m),h(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,m,t),r.portalItem=u,(0,n.v)(p),await(s?.(u,p)),u}},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}}},26121:(e,t,r)=>{r.d(t,{c:()=>i,d:()=>n});var a=r(49186);async function n(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)}const o=new Set(["layer:unsupported","property:unsupported","symbol:unsupported","symbol-layer:unsupported","url:unsupported"]);function i(e,t,r){let n=(e.messages??[]).filter((({type:e})=>"error"===e)).map((({name:e,message:t,details:r})=>new a.A(e,t,r)));if(e.blockedRelativeUrls&&(n=n.concat(e.blockedRelativeUrls.map((e=>new a.A("url:unsupported",`Relative url '${e}' is not supported`))))),r){const{ignoreUnsupported:e,supplementalUnsupportedErrors:t=[],requiredPropertyChecksDisabled:a}=r;e&&(n=n.filter((({name:e})=>!(o.has(e)||t.includes(e))))),a&&(n=n.filter((e=>"web-document-write:property-required"!==e.name)))}if(n.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:n})}}}]);