@arcgis/core 4.28.0-next.20231003 → 4.28.0-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/esri/core/workers/RemoteClient.js +1 -1
- package/assets/esri/core/workers/chunks/02120d192eafd7612475.js +1 -0
- package/assets/esri/core/workers/chunks/0beebbb0c6dad0e742d7.js +1 -0
- package/assets/esri/core/workers/chunks/112e89da628bdea5355c.js +1 -0
- package/assets/esri/core/workers/chunks/{5e9edd06e624f385fa4b.js → 121a9e148509f2fe2210.js} +1 -1
- package/assets/esri/core/workers/chunks/1856d16d738f44f58084.js +1 -0
- package/assets/esri/core/workers/chunks/{0526d623d0b4c12929bd.js → 18ab9cc85a1a7988fdfd.js} +1 -1
- package/assets/esri/core/workers/chunks/{7c960a2694c4c3123acf.js → 1a36703ebe934749646e.js} +1 -1
- package/assets/esri/core/workers/chunks/24a0cf405195421c0d06.js +1 -0
- package/assets/esri/core/workers/chunks/24ff267cf253feac22de.js +1 -0
- package/assets/esri/core/workers/chunks/{3c8613596659801fd6ab.js → 29cab345819ec02ed60a.js} +1 -1
- package/assets/esri/core/workers/chunks/{169a61c6e128b8a16021.js → 2c560a075d9ef2069ed1.js} +1 -1
- package/assets/esri/core/workers/chunks/2f8e71dac98135bbc3e6.js +1 -0
- package/assets/esri/core/workers/chunks/341fb51b2165522963b3.js +1 -0
- package/assets/esri/core/workers/chunks/{ad8e0f82cb1feafa9e2f.js → 36ab90fb34b9716a9983.js} +1 -1
- package/assets/esri/core/workers/chunks/{2688213bbff536da7917.js → 3ea0b872436fce84b927.js} +1 -1
- package/assets/esri/core/workers/chunks/40633064c290dc2af9ea.js +1 -0
- package/assets/esri/core/workers/chunks/42ec4c80b0c2944cd65c.js +1 -0
- package/assets/esri/core/workers/chunks/44b870cb53ba68b17c32.js +1 -0
- package/assets/esri/core/workers/chunks/{8a7fa4e8b0d14da7c9eb.js → 4cc680fe4c9c39d2f853.js} +1 -1
- package/assets/esri/core/workers/chunks/{6730c9f0890191a95fdb.js → 4d81aa50d90f5701a343.js} +1 -1
- package/assets/esri/core/workers/chunks/4e0bf30da4281070e453.js +1 -0
- package/assets/esri/core/workers/chunks/4e6bf1efe3b0b474cbb4.js +1 -0
- package/assets/esri/core/workers/chunks/52cef7cd3aaaa4f45c94.js +1 -0
- package/assets/esri/core/workers/chunks/5e907ec0ee1565b5fbbc.js +1 -0
- package/assets/esri/core/workers/chunks/66ba749ab0a631bbfdec.js +1 -0
- package/assets/esri/core/workers/chunks/6b14d89d689a21014aec.js +1 -0
- package/assets/esri/core/workers/chunks/6b1856303d1562f05100.js +1 -0
- package/assets/esri/core/workers/chunks/{576269fd1f9049876aa1.js → 6b7b5544ed1f9a84623f.js} +1 -1
- package/assets/esri/core/workers/chunks/710a6268de62003af825.js +1 -0
- package/assets/esri/core/workers/chunks/77923afde29ae1ff10ca.js +1 -0
- package/assets/esri/core/workers/chunks/784ffd52315a4d55d683.js +1 -0
- package/assets/esri/core/workers/chunks/7cf7f2b991a7cbdad2ce.js +1 -0
- package/assets/esri/core/workers/chunks/{70dffbf49b0633b1a5f1.js → 8f3680fee85a05839489.js} +1 -1
- package/assets/esri/core/workers/chunks/97aecf210938015cc7a3.js +1 -0
- package/assets/esri/core/workers/chunks/{c7ebd5d431fb996bfcee.js → 9f8207c82a17508a87a8.js} +1 -1
- package/assets/esri/core/workers/chunks/{557305b91f77569ce664.js → a01ffe03b1465c21b9e6.js} +1 -1
- package/assets/esri/core/workers/chunks/a298c9031962951e55a9.js +1 -0
- package/assets/esri/core/workers/chunks/{329669a9beda89b028dd.js → a5a7bbdd8298016535bc.js} +1 -1
- package/assets/esri/core/workers/chunks/a877a4826cd6a46ec99b.js +1 -0
- package/assets/esri/core/workers/chunks/ad38e456a7cee940a165.js +1 -0
- package/assets/esri/core/workers/chunks/adfbc168be8c49b51e1b.js +1 -0
- package/assets/esri/core/workers/chunks/b0526633a93ef69ec47b.js +1 -0
- package/assets/esri/core/workers/chunks/b99bc08a01e9250b0a31.js +1 -0
- package/assets/esri/core/workers/chunks/{36c4b4c3eca57417da2c.js → c260ad3434bb00ba64a7.js} +1 -1
- package/assets/esri/core/workers/chunks/{39922ce232338de076ae.js → c459c8d8630eb4b955b1.js} +1 -1
- package/assets/esri/core/workers/chunks/c92e75b79aff7b505b31.js +1 -0
- package/assets/esri/core/workers/chunks/ca85e88dad30b5f2956b.js +1 -0
- package/assets/esri/core/workers/chunks/{8e56d40691b6bf75d7cc.js → ce409944221a784ddb61.js} +1 -1
- package/assets/esri/core/workers/chunks/d13f75f233cf313e5a1d.js +1 -0
- package/assets/esri/core/workers/chunks/d60d5f006375f7fcc88c.js +1 -0
- package/assets/esri/core/workers/chunks/{77958089748dc31757cf.js → d6ded127949160103f69.js} +1 -1
- package/assets/esri/core/workers/chunks/d8c696da42f8f8919b83.js +1 -0
- package/assets/esri/core/workers/chunks/{304c81f6297ecba3a324.js → d95eed98316e59f8f35d.js} +1 -1
- package/assets/esri/core/workers/chunks/df7267892b6e0493e1d7.js +1 -0
- package/assets/esri/core/workers/chunks/{52dca349e1a45555954d.js → e52d5a48e83d8df36f92.js} +1 -1
- package/assets/esri/core/workers/chunks/e8688b6cc3b3c1010b43.js +1 -0
- package/assets/esri/core/workers/chunks/e8c7cc974420c0b92d0e.js +1 -0
- package/assets/esri/core/workers/chunks/{b6847d68c35e7dbf6004.js → e93442c6d92229f3a4b0.js} +1 -1
- package/assets/esri/core/workers/chunks/f2718e260f594537f7fd.js +1 -0
- package/assets/esri/core/workers/chunks/f6b7036114b1d754fdd9.js +1 -0
- package/assets/esri/core/workers/chunks/{c4631241dc777ca77aaa.js → f6c0680c535c5a3c73ee.js} +1 -1
- package/assets/esri/core/workers/chunks/fac3e57784d7f37053af.js +1 -0
- package/assets/esri/t9n/common.json +1 -1
- package/assets/esri/t9n/common_ar.json +1 -1
- package/assets/esri/t9n/common_bg.json +1 -1
- package/assets/esri/t9n/common_bs.json +1 -1
- package/assets/esri/t9n/common_ca.json +1 -1
- package/assets/esri/t9n/common_cs.json +1 -1
- package/assets/esri/t9n/common_da.json +1 -1
- package/assets/esri/t9n/common_de.json +1 -1
- package/assets/esri/t9n/common_el.json +1 -1
- package/assets/esri/t9n/common_en.json +1 -1
- package/assets/esri/t9n/common_es.json +1 -1
- package/assets/esri/t9n/common_et.json +1 -1
- package/assets/esri/t9n/common_fi.json +1 -1
- package/assets/esri/t9n/common_fr.json +1 -1
- package/assets/esri/t9n/common_he.json +1 -1
- package/assets/esri/t9n/common_hr.json +1 -1
- package/assets/esri/t9n/common_hu.json +1 -1
- package/assets/esri/t9n/common_id.json +1 -1
- package/assets/esri/t9n/common_it.json +1 -1
- package/assets/esri/t9n/common_ja.json +1 -1
- package/assets/esri/t9n/common_ko.json +1 -1
- package/assets/esri/t9n/common_lt.json +1 -1
- package/assets/esri/t9n/common_lv.json +1 -1
- package/assets/esri/t9n/common_nb.json +1 -1
- package/assets/esri/t9n/common_nl.json +1 -1
- package/assets/esri/t9n/common_pl.json +1 -1
- package/assets/esri/t9n/common_pt-BR.json +1 -1
- package/assets/esri/t9n/common_pt-PT.json +1 -1
- package/assets/esri/t9n/common_ro.json +1 -1
- package/assets/esri/t9n/common_ru.json +1 -1
- package/assets/esri/t9n/common_sk.json +1 -1
- package/assets/esri/t9n/common_sl.json +1 -1
- package/assets/esri/t9n/common_sr.json +1 -1
- package/assets/esri/t9n/common_sv.json +1 -1
- package/assets/esri/t9n/common_th.json +1 -1
- package/assets/esri/t9n/common_tr.json +1 -1
- package/assets/esri/t9n/common_uk.json +1 -1
- package/assets/esri/t9n/common_vi.json +1 -1
- package/assets/esri/t9n/common_zh-CN.json +1 -1
- package/assets/esri/t9n/common_zh-HK.json +1 -1
- package/assets/esri/t9n/common_zh-TW.json +1 -1
- package/assets/esri/themes/base/widgets/_DirectionalPad.scss +2 -1
- package/assets/esri/themes/base/widgets/_FeatureForm.scss +0 -1
- package/assets/esri/themes/dark/main.css +1 -1
- package/assets/esri/themes/light/main.css +1 -1
- package/assets/esri/themes/light/view.css +1 -1
- package/config.js +1 -1
- package/core/pbf.js +1 -1
- package/interfaces.d.ts +0 -32
- package/kernel.js +1 -1
- package/layers/GroupLayer.js +1 -1
- package/layers/SceneLayer.js +1 -1
- package/layers/graphics/editingSupport.js +1 -1
- package/layers/graphics/sources/WFSSourceWorker.js +1 -1
- package/layers/graphics/sources/geojson/GeoJSONSourceWorker.js +1 -1
- package/layers/graphics/sources/support/CSVSourceWorker.js +1 -1
- package/layers/graphics/sources/support/MemorySourceWorker.js +1 -1
- package/layers/mixins/OperationalLayer.js +1 -1
- package/layers/save/featureLayerUtils.js +1 -1
- package/layers/save/groupLayerUtils.js +5 -0
- package/layers/save/utils.js +1 -1
- package/layers/support/LayerLoadContext.js +5 -0
- package/layers/support/featureLayerUtils.js +1 -1
- package/layers/support/labelFormatUtils.js +1 -1
- package/layers/support/layersCreator.js +1 -1
- package/package.json +1 -1
- package/portal/schemas/definitions.js +1 -1
- package/portal/support/jsonContext.js +1 -1
- package/portal/support/layersLoader.js +1 -1
- package/portal/support/loadUtils.js +5 -0
- package/portal/support/portalItemUtils.js +1 -1
- package/portal/support/portalLayers.js +1 -1
- package/renderers/support/RasterSymbolizer.js +1 -1
- package/support/basemapUtils.js +1 -1
- package/support/revision.js +1 -1
- package/symbols/PolygonSymbol3D.js +1 -1
- package/views/2d/engine/imagery/RasterBitmap.js +1 -1
- package/views/2d/engine/imagery/colorizer/shadedrelief.js +1 -1
- package/views/2d/engine/imagery/colorizer/stretch.js +1 -1
- package/views/2d/input/handlers/KeyPan.js +1 -1
- package/views/2d/input/handlers/KeyRotate.js +1 -1
- package/views/2d/layers/features/support/FeatureSetReader.js +1 -1
- package/views/2d/layers/features/support/FeatureSetReaderPBFIndirect.js +1 -1
- package/views/3d/input/handlers/KeyboardNavigation.js +1 -1
- package/views/3d/interactive/visualElements/LineVisualElement.js +1 -1
- package/views/3d/layers/graphics/Graphics3DMeshFillSymbolLayer.js +1 -1
- package/views/3d/layers/graphics/Graphics3DMeshObject3DGraphicLayer.js +1 -1
- package/views/3d/layers/i3s/featureEditing.js +1 -1
- package/views/3d/webgl-engine/lib/edgeRendering/EdgeView.js +1 -1
- package/views/3d/webgl-engine/materials/RibbonLineMaterial.js +1 -1
- package/views/DOMContainer.js +1 -1
- package/views/input/VisibilityChange.js +5 -0
- package/webdoc/support/saveUtils.js +1 -1
- package/webdoc/webdocSaveUtils.js +1 -1
- package/widgets/DirectionalPad/DirectionalPadViewModel.js +1 -1
- package/widgets/DirectionalPad/constants.js +1 -1
- package/widgets/DirectionalPad.js +1 -1
- package/widgets/FeatureForm/FieldInput.js +1 -1
- package/widgets/FeatureForm/featureFormUtils.js +1 -1
- package/widgets/FeatureForm.js +1 -1
- package/widgets/FeatureTable/FeatureTableViewModel.js +1 -1
- package/widgets/FeatureTable/FieldColumn.js +1 -1
- package/widgets/support/dateUtils.js +1 -1
- package/assets/esri/core/workers/chunks/027f8b57565c65fbccda.js +0 -1
- package/assets/esri/core/workers/chunks/048265fb5953350e3e33.js +0 -1
- package/assets/esri/core/workers/chunks/0b9cf14f8aafb76c578b.js +0 -1
- package/assets/esri/core/workers/chunks/10fd951bd296b2beeeba.js +0 -1
- package/assets/esri/core/workers/chunks/1224475f3eefdfd59c76.js +0 -1
- package/assets/esri/core/workers/chunks/162b0220e24e9ba72655.js +0 -1
- package/assets/esri/core/workers/chunks/1e611cad53b745ee146f.js +0 -1
- package/assets/esri/core/workers/chunks/29ed31fd4f9d5cf53686.js +0 -1
- package/assets/esri/core/workers/chunks/2b6d1c8e4ed759767827.js +0 -1
- package/assets/esri/core/workers/chunks/34b44b0fab88f838885c.js +0 -1
- package/assets/esri/core/workers/chunks/364f55294a1d7bf163d7.js +0 -1
- package/assets/esri/core/workers/chunks/3714ab435dd5ccf9e694.js +0 -1
- package/assets/esri/core/workers/chunks/3788009a5ece453011f3.js +0 -1
- package/assets/esri/core/workers/chunks/3aafe8160b3bfbaa6935.js +0 -1
- package/assets/esri/core/workers/chunks/3e6255ab48b561af131e.js +0 -1
- package/assets/esri/core/workers/chunks/41c002e4c42c581cda8d.js +0 -1
- package/assets/esri/core/workers/chunks/47be4c75dd6372b96fe4.js +0 -1
- package/assets/esri/core/workers/chunks/4e8d1e6051f6654a5e83.js +0 -1
- package/assets/esri/core/workers/chunks/53746e9976758630159b.js +0 -1
- package/assets/esri/core/workers/chunks/5449fdd69e12e5cbd12a.js +0 -1
- package/assets/esri/core/workers/chunks/57ce4ece0147afb0d43c.js +0 -1
- package/assets/esri/core/workers/chunks/5e83d21400a5dec05c81.js +0 -1
- package/assets/esri/core/workers/chunks/6047f4487dcd37cca98e.js +0 -1
- package/assets/esri/core/workers/chunks/6967d2b3721678b38774.js +0 -1
- package/assets/esri/core/workers/chunks/6ac5ca7de651e3d672a1.js +0 -1
- package/assets/esri/core/workers/chunks/6b7ee9164149428edb9e.js +0 -1
- package/assets/esri/core/workers/chunks/6c495077cc79e1898927.js +0 -1
- package/assets/esri/core/workers/chunks/6d43648d5326e01b4474.js +0 -1
- package/assets/esri/core/workers/chunks/74fb07de0f990d45af89.js +0 -1
- package/assets/esri/core/workers/chunks/8e9a52062ce059153a89.js +0 -1
- package/assets/esri/core/workers/chunks/919a57d372419785cd5e.js +0 -1
- package/assets/esri/core/workers/chunks/939f0a1a7d605e389e45.js +0 -1
- package/assets/esri/core/workers/chunks/9932f23ba6589df14a3d.js +0 -1
- package/assets/esri/core/workers/chunks/a25a38c9f338e0beffef.js +0 -1
- package/assets/esri/core/workers/chunks/a97581e584336b46ede7.js +0 -1
- package/assets/esri/core/workers/chunks/b04eb35e06b1c5759ad0.js +0 -1
- package/assets/esri/core/workers/chunks/b1cb932cfadc4dc3f1e4.js +0 -1
- package/assets/esri/core/workers/chunks/be3fb6113b0b27b94537.js +0 -1
- package/assets/esri/core/workers/chunks/c37119f5692e19aa1ce2.js +0 -1
- package/assets/esri/core/workers/chunks/c685f16435d9861bbbd0.js +0 -1
- package/assets/esri/core/workers/chunks/e6416a2684866d677b3e.js +0 -1
- package/assets/esri/core/workers/chunks/eb01f4cdb9b918cc61e7.js +0 -1
- package/assets/esri/core/workers/chunks/eb4aed4fdb44495a4fe6.js +0 -1
- package/assets/esri/core/workers/chunks/ec8258c9dc1491e97fc8.js +0 -1
- package/assets/esri/core/workers/chunks/eeac53da496de4cd4182.js +0 -1
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.28/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{difference as e,isSome as a}from"../../core/arrayUtils.js";import r from"../../core/Error.js";import{updateOrigins as t}from"../../core/accessorSupport/originUtils.js";import
|
|
5
|
+
import{difference as e,isSome as a}from"../../core/arrayUtils.js";import r from"../../core/Error.js";import{updateOrigins as t}from"../../core/accessorSupport/originUtils.js";import o from"../FeatureLayer.js";import{save as s,getLayerJSON as l,setCommonItemProperties as n,saveAs as i,getPortalItem as u,addItem as c,ensureLayerConfig as p,ensureItemConfig as m,createErrorMessage as f}from"./utils.js";import{parse as y}from"../support/arcgisLayerUrl.js";import{fetchFeatureService as d}from"../support/fetchService.js";import{isLayerWithFeatureLayerSource as h}from"../support/layerUtils.js";import{createForItemWrite as w}from"../../portal/support/jsonContext.js";import{getWGS84ExtentForItem as v,removeTypeKeyword as S,TypeKeyword as I,toggleTypeKeword as b,addTypeKeyword as T}from"../../portal/support/portalItemUtils.js";const P="Feature Service",$="feature-layer-utils",E=`${$}-save`,A=`${$}-save-as`,L=`${$}-saveall`,N=`${$}-saveall-as`;function x(e){return{isValid:h(e)&&("feature"!==e.type||!e.dynamicDataSource),errorMessage:"Feature layer should be a layer or table in a map or feature service"}}function j(e){const a=[],r=[];for(const{layer:t,layerJSON:o}of e)t.isTable?r.push(o):a.push(o);return{layers:a,tables:r}}function U(e){return j([e])}async function g(e,a){return/\/\d+\/?$/.test(e.url)?U(a[0]):O(a,e)}async function O(e,a){if(!a)return j(e);const{layer:{url:r,customParameters:t,apiKey:o}}=e[0];let s=await a.fetchData("json");null!=s?.layers&&null!=s.tables||(s=await J(s,{url:r??"",customParameters:t,apiKey:o},e.map((e=>e.layer.layerId))));for(const l of e)D(l.layer,l.layerJSON,s);return s}async function J(e,a,r){e||={},e.layers||=[],e.tables||=[];const{url:t,customParameters:o,apiKey:s}=a,{serviceJSON:l,layersJSON:n}=await d(t,{customParameters:o,apiKey:s}),i=M(e.layers,l.layers,r),u=M(e.tables,l.tables,r);e.layers=i.itemResources,e.tables=u.itemResources;const c=[...i.added,...u.added],p=n?[...n.layers,...n.tables]:[];return await R(e,c,t,p),e}function M(a,r,t){const o=e(a,r,((e,a)=>e.id===a.id));a=a.filter((e=>!o.removed.some((a=>a.id===e.id))));const s=o.added.map((({id:e})=>({id:e})));return s.forEach((({id:e})=>{a.push({id:e})})),{itemResources:a,added:s.filter((({id:e})=>!t.includes(e)))}}async function R(e,a,r,t){const s=a.map((({id:e})=>new o({url:r,layerId:e,sourceJSON:t.find((({id:a})=>a===e))})));await Promise.allSettled(s.map((e=>e.load()))),s.forEach((a=>{const{layerId:r,loaded:t,defaultPopupTemplate:o}=a;if(!t||null==o)return;D(a,{id:r,popupInfo:o.toJSON()},e)}))}function D(e,a,r){e.isTable?F(r.tables,a):F(r.layers,a)}function F(e,a){const r=e.findIndex((({id:e})=>e===a.id));-1===r?e.push(a):e[r]=a}function K(e,a){if(!e.length)throw new r(`${a}:missing-parameters`,"'layers' array should contain at least one feature layer")}function Y(e,a){const t=e.map((e=>e.portalItem.id));if(new Set(t).size>1)throw new r(`${a}:invalid-parameters`,"All layers in the 'layers' array should be loaded from the same portal item")}function _(e,a){const t=e.map((e=>e.layerId));if(new Set(t).size!==t.length)throw new r(`${a}:invalid-parameters`,"'layers' array should contain only one instance each of layer or table in a feature service")}async function z(e){K(e,L),await Promise.all(e.map((e=>e.load())));for(const a of e)p(a,L,x),m({layer:a,itemType:P,errorNamePrefix:L});Y(e,L),_(e,L)}async function B(e,a){const{url:r,layerId:t,title:o,fullExtent:s,isTable:l}=e,n=y(r);a.url="FeatureServer"===n?.serverType?r:`${r}/${t}`,a.title||=o,a.extent=null,l||null==s||(a.extent=await v(s)),S(a,I.METADATA),S(a,I.MULTI_LAYER),T(a,I.SINGLE_LAYER),l&&T(a,I.TABLE)}function G(e,a){for(const l of e){const t=l.parsedUrl.path,o=y(t),s=o?.url.path;if(!s)throw new r(`${a}:invalid-parameters`,f(l,`has unsupported url pattern: ${t}`),{layer:l});const n=o?.serverType;if("FeatureServer"!==n&&"MapServer"!==n)throw new r(`${a}:invalid-parameters`,f(l,`has unsupported server type: ${n}`),{layer:l});if("MapServer"===n&&e.length>1)throw new r(`${a}:invalid-parameters`,"Only one layer or table in a map service can be saved")}const t=y(e[0].parsedUrl.path),o=t?.url.path,s=e.every((e=>{const a=y(e.parsedUrl.path);return a?.url.path===o}));if(!s)throw new r(`${a}:invalid-parameters`,"'layers' array should only contain layers or tables that belong to the same feature service")}async function C(e){K(e,N),await Promise.all(e.map((e=>e.load())));for(const a of e)p(a,N,x);G(e,N),_(e,N)}async function V(e,r){let t=0,o=0;for(const{isTable:a}of r)a?o++:t++;const s=r[0].parsedUrl.path,l=y(s);if(e.url="FeatureServer"===l?.serverType?l.url.path:s,e.title||=l.title,e.extent=null,t>0){const t=r.map((e=>e.fullExtent)).filter(a).reduce(((e,a)=>e.clone().union(a)));t&&(e.extent=await v(t))}S(e,I.METADATA),b(e,I.MULTI_LAYER,r.length>1),b(e,I.SINGLE_LAYER,1===r.length),b(e,I.TABLE,o>0&&0===t),n(e)}async function k(e,a){return s({layer:e,itemType:P,validateLayer:x,createItemData:(e,a)=>g(a,[e]),errorNamePrefix:E},a)}async function q(e,a){await z(e);const r=e[0].portalItem,o=w(r),s=await Promise.all(e.map((e=>l(e,o,a)))),i=await g(r,e.map(((e,a)=>({layer:e,layerJSON:s[a]}))));return n(r),await r.update({data:i}),await Promise.all(e.slice(1).map((e=>e.portalItem.reload()))),t(o),r.clone()}async function H(e,a,r){return i({layer:e,itemType:P,validateLayer:x,createItemData:(e,a)=>Promise.resolve(U(e)),errorNamePrefix:A,newItem:a,setItemProperties:B},r)}async function Q(e,a,r){await C(e);const o=u({itemType:P,errorNamePrefix:N,newItem:a}),s=w(o),n=await Promise.all(e.map((e=>l(e,s,r)))),i=await O(e.map(((e,a)=>({layer:e,layerJSON:n[a]}))));await V(o,e),await c(o,i,r);for(const t of e)t.portalItem=o.clone();return t(s),o}export{k as save,q as saveAll,Q as saveAllAs,H as saveAs};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/*
|
|
2
|
+
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
|
+
See https://js.arcgis.com/4.28/esri/copyright.txt for details.
|
|
4
|
+
*/
|
|
5
|
+
import{save as e,saveAs as t}from"./utils.js";import{createForGroupLayerItemWrite as r}from"../../portal/support/jsonContext.js";import{TypeKeyword as a,hasTypeKeyword as o,addTypeKeyword as s}from"../../portal/support/portalItemUtils.js";const n="Group Layer",i="group-layer-save",l="group-layer-save-as",p=a.GROUP_LAYER_MAP;function u(e){return{isValid:"group"===e.type,errorMessage:"Layer.type should be 'group'"}}function y(e){return{isValid:o(e,p),errorMessage:`Layer.portalItem.typeKeywords should have '${p}'`}}function m(e){const t=e.layerJSON;return t&&delete t.itemId,Promise.resolve(t&&Object.keys(t).length?t:null)}async function c(e,t){t.title||=e.title,s(t,p)}async function f(t,a){return e({layer:t,itemType:n,validateLayer:u,validateItem:y,createJSONContext:e=>r(e),createItemData:m,errorNamePrefix:i},a)}async function d(e,a,o){return t({layer:e,itemType:n,validateLayer:u,createJSONContext:e=>r(e),createItemData:m,errorNamePrefix:l,newItem:a,setItemProperties:c},o)}export{f as save,d as saveAs};
|
package/layers/save/utils.js
CHANGED
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.28/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import e from"../../core/Error.js";import{updateOrigins as t}from"../../core/accessorSupport/originUtils.js";import r from"../../portal/Portal.js";import o from"../../portal/PortalItem.js";import{createForItemWrite as a}from"../../portal/support/jsonContext.js";import{addTypeKeyword as i,TypeKeyword as n}from"../../portal/support/portalItemUtils.js";import{validateSaveAPIKey as s}from"../../webdoc/saveAPIKeyUtils.js";function l(t,r,o){const a=o(t);if(!a.isValid)throw new e(`${r}:invalid-parameters`,a.errorMessage,{layer:t})}async function p(e){const{layer:t,errorNamePrefix:r,validateLayer:o}=e;await t.load(),l(t,r,o)}function m(e,t){return`Layer (title: ${e.title}, id: ${e.id}) of type '${e.declaredClass}' ${t}`}function d(t
|
|
5
|
+
import e from"../../core/Error.js";import{updateOrigins as t}from"../../core/accessorSupport/originUtils.js";import r from"../../portal/Portal.js";import o from"../../portal/PortalItem.js";import{createForItemWrite as a}from"../../portal/support/jsonContext.js";import{addTypeKeyword as i,TypeKeyword as n}from"../../portal/support/portalItemUtils.js";import{validateSaveAPIKey as s}from"../../webdoc/saveAPIKeyUtils.js";function l(t,r,o){const a=o(t);if(!a.isValid)throw new e(`${r}:invalid-parameters`,a.errorMessage,{layer:t})}async function p(e){const{layer:t,errorNamePrefix:r,validateLayer:o}=e;await t.load(),l(t,r,o)}function m(e,t){return`Layer (title: ${e.title}, id: ${e.id}) of type '${e.declaredClass}' ${t}`}function d(t){const{item:r,itemType:o,errorNamePrefix:a,layer:i,validateItem:n}=t;if(s(r),r.type!==o)throw new e(`${a}:portal-item-wrong-type`,`Portal item type should be "${o}"`,{item:r,layer:i});if(n){const t=n(r);if(!t.isValid)throw new e(`${a}:invalid-parameters`,t.errorMessage,{layer:i})}}function c(t){const{layer:r,errorNamePrefix:o}=t,{portalItem:a}=r;if(!a)throw new e(`${o}:portal-item-not-set`,m(r,"requires the portalItem property to be set"));if(!a.loaded)throw new e(`${o}:portal-item-not-loaded`,m(r,"cannot be saved to a portal item that does not exist or is inaccessible"));d({...t,item:a})}function f(e){const{newItem:t,itemType:a}=e;let i=o.from(t);return i.id&&(i=i.clone(),i.id=null),i.type??=a,i.portal??=r.getDefault(),d({...e,item:i}),i}function u(t,r){let o=(t.messages??[]).filter((({type:e})=>"error"===e)).map((({name:t,message:r,details:o})=>new e(t,r,o)));if(r?.ignoreUnsupported&&(o=o.filter((({name:e})=>"layer:unsupported"!==e&&"symbol:unsupported"!==e&&"symbol-layer:unsupported"!==e&&"property:unsupported"!==e&&"url:unsupported"!==e))),o.length>0)throw new e("layer-write:unsupported","Failed to save layer due to unsupported or invalid content. See 'details.errors' for more detailed information",{errors:o})}async function y(e,t,r){"beforeSave"in e&&"function"==typeof e.beforeSave&&await e.beforeSave();const o=e.write({},t);return u(t,r),o}function w(e){i(e,n.JSAPI),e.typeKeywords&&(e.typeKeywords=e.typeKeywords.filter(((e,t,r)=>r.indexOf(e)===t)))}async function I(e,t,r){const o=e.portal;await o.signIn(),await(o.user?.addItem({item:e,data:t,folder:r?.folder}))}async function v(e,r){const{layer:o,createItemData:i,createJSONContext:n}=e;await p(e),c(e);const s=o.portalItem,l=n?n(s):a(s),m=await y(o,l,r),d=await i({layer:o,layerJSON:m},s);return w(s),await s.update({data:d}),t(l),s}async function b(e,r){const{layer:o,createItemData:i,createJSONContext:n,setItemProperties:s}=e;await p(e);const l=f(e),m=n?n(l):a(l),d=await y(o,m,r),c=await i({layer:o,layerJSON:d},l);return await s(o,l),w(l),await I(l,c,r),o.portalItem=l,t(m),l}export{I as addItem,m as createErrorMessage,c as ensureItemConfig,l as ensureLayerConfig,y as getLayerJSON,f as getPortalItem,v as save,b as saveAs,w as setCommonItemProperties};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/*
|
|
2
|
+
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
|
+
See https://js.arcgis.com/4.28/esri/copyright.txt for details.
|
|
4
|
+
*/
|
|
5
|
+
import{fetchArcGISServiceJSON as t}from"../../support/requestPresets.js";class e{constructor(){this._serviceMetadatas=new Map}async fetchServiceMetadata(e,s){const a=this._serviceMetadatas.get(e);if(a)return a;const r=await t(e,s);return this._serviceMetadatas.set(e,r),r}}export{e as LayerLoadContext};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.28/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{id as t}from"../../kernel.js";import{symbolTypesRenderer as e}from"../../symbols.js";import r from"../../core/Error.js";import{JSONMap as
|
|
5
|
+
import{id as t}from"../../kernel.js";import{symbolTypesRenderer as e}from"../../symbols.js";import{resultOrAbort as r}from"../../core/asyncUtils.js";import n from"../../core/Error.js";import{JSONMap as o}from"../../core/jsonMap.js";import{parseWhereClause as a}from"../../core/sql.js";import{createTypeReader as s}from"../../core/accessorSupport/extensions/serializableProperty/reader.js";import{queryAllJSON as i}from"./featureQueryAll.js";import{getOwningPortalUrl as u}from"./layerUtils.js";import c from"../../renderers/SimpleRenderer.js";import l from"../../renderers/UniqueValueRenderer.js";import p from"../../rest/support/AttachmentQuery.js";import d from"../../rest/support/Query.js";import y from"../../rest/support/RelationshipQuery.js";const f=new o({esriGeometryPoint:"point",esriGeometryMultipoint:"multipoint",esriGeometryPolyline:"polyline",esriGeometryPolygon:"polygon",esriGeometryMultiPatch:"multipatch"});async function m(t,e,r,o){const a=await G(t);if(await h(t,e,o),!a.addAttachment)throw new n(o,"Layer source does not support addAttachment capability");return a.addAttachment(e,r)}function h(t,e,r){const{attributes:o}=e,{objectIdField:a}=t;return t.capabilities?.data?.supportsAttachment?e?o?a&&o[a]?Promise.resolve():Promise.reject(new n(r,`feature is missing the identifying attribute ${a}`)):Promise.reject(new n(r,"'attributes' are required on a feature to query attachments")):Promise.reject(new n(r,"A feature is required to add/delete/update attachments")):Promise.reject(new n(r,"this layer doesn't support attachments"))}async function w(t,e,r,o,a){const s=await G(t);if(await h(t,e,a),!s.updateAttachment)throw new n(a,"Layer source does not support updateAttachment capability");return s.updateAttachment(e,r,o)}async function b(t,e,r){const{applyEdits:n}=await import("../graphics/editingSupport.js"),o=await t.load(),{source:a,globalIdField:s}=o;let i=r;return("feature"===o.type?o.infoFor3D:null)&&null!=e.deleteFeatures&&null!=s&&(i={...i,globalIdToObjectId:await V(t,e.deleteFeatures,s)}),n(o,a,e,r)}async function g(t,e,r){const{uploadAssets:n}=await import("../graphics/editingSupport.js"),o=await t.load();return n(o,o.source,e,r)}async function j(t,e,r,o){const a=await G(t);if(await h(t,e,o),!a.deleteAttachments)throw new n(o,"Layer source does not support deleteAttachments capability");return a.deleteAttachments(e,r)}async function I(t,e,r){const o=(await t.load({signal:e?.signal})).source;if(!o.fetchRecomputedExtents)throw new n(r,"Layer source does not support fetchUpdates capability");return o.fetchRecomputedExtents(e)}async function q(t,e,r,o){e=p.from(e),await t.load();const a=t.source,s=t.capabilities;if(!s?.data?.supportsAttachment)throw new n(o,"this layer doesn't support attachments");const{attachmentTypes:i,objectIds:u,globalIds:c,num:l,size:d,start:y,where:f}=e;if(!s?.operations?.supportsQueryAttachments){if(i?.length>0||c?.length>0||d?.length>0||l||y||f)throw new n(o,"when 'capabilities.operations.supportsQueryAttachments' is false, only objectIds is supported",e)}if(!(u?.length||c?.length||f))throw new n(o,"'objectIds', 'globalIds', or 'where' are required to perform attachment query",e);if(!a.queryAttachments)throw new n(o,"Layer source does not support queryAttachments capability",e);return a.queryAttachments(e)}async function F(t,e,r,o){const a=await G(t);if(!a.queryObjectIds)throw new n(o,"Layer source does not support queryObjectIds capability");return a.queryObjectIds(d.from(e)??t.createQuery(),r)}async function A(t,e,r,o){const a=await G(t);if(!a.queryFeatureCount)throw new n(o,"Layer source does not support queryFeatureCount capability");return a.queryFeatureCount(d.from(e)??t.createQuery(),r)}async function O(t,e,r,o){const a=await G(t);if(!a.queryExtent)throw new n(o,"Layer source does not support queryExtent capability");return a.queryExtent(d.from(e)??t.createQuery(),r)}async function P(t,e,r,o){const a=await G(t);if(!a.queryRelatedFeatures)throw new n(o,"Layer source does not support queryRelatedFeatures capability");return a.queryRelatedFeatures(y.from(e),r)}async function E(t,e,r,o){const a=await G(t);if(!a.queryRelatedFeaturesCount)throw new n(o,"Layer source does not support queryRelatedFeaturesCount capability");return a.queryRelatedFeaturesCount(y.from(e),r)}async function S(t){const e=t.source;if(e?.refresh)try{const{dataChanged:r,updates:n}=await e.refresh();if(null!=n&&(t.sourceJSON={...t.sourceJSON,...n},t.read(n,{origin:"service",url:t.parsedUrl})),r)return!0}catch{}if(t.definitionExpression)try{return(await a(t.definitionExpression,t.fieldsIndex)).hasDateFunctions}catch{}return!1}function x(t){const e=new d,r=t.capabilities?.data,n=t.capabilities?.query;e.historicMoment=t.historicMoment,e.gdbVersion=t.gdbVersion,e.returnGeometry=!0,n&&(e.compactGeometryEnabled=n.supportsCompactGeometry,e.defaultSpatialReferenceEnabled=n.supportsDefaultSpatialReference),r&&(r.supportsZ&&null!=t.returnZ&&(e.returnZ=t.returnZ),r.supportsM&&null!=t.returnM&&(e.returnM=t.returnM)),e.outFields=["*"];const{timeOffset:o,timeExtent:a}=t;return e.timeExtent=null!=o&&null!=a?a.offset(-o.value,o.unit):a||null,e.multipatchOption="multipatch"===t.geometryType?"xyFootprint":null,e}function R(t){const{globalIdField:e,fields:r}=t;if(e)return e;if(r)for(const n of r)if("esriFieldTypeGlobalID"===n.type)return n.name}function M(t){const{objectIdField:e,fields:r}=t;if(e)return e;if(r)for(const n of r)if("esriFieldTypeOID"===n.type)return n.name}function C(t){return t.currentVersion?t.currentVersion:t.hasOwnProperty("capabilities")||t.hasOwnProperty("drawingInfo")||t.hasOwnProperty("hasAttachments")||t.hasOwnProperty("htmlPopupType")||t.hasOwnProperty("relationships")||t.hasOwnProperty("timeInfo")||t.hasOwnProperty("typeIdField")||t.hasOwnProperty("types")?10:9.3}async function G(t){return(await t.load()).source}async function L(e,r){if(!t)return;if(t.findCredential(e))return;let n;try{const o=await u(e,r);o&&(n=await t.checkSignInStatus(`${o}/sharing`))}catch(o){}if(n)try{const n=null!=r?r.signal:null;await t.getCredential(e,{signal:n})}catch(o){}}async function Q(t,e,r){const n=t.parsedUrl?.path;n&&t.authenticationTriggerEvent===e&&await L(n,r)}function T(t){return!t.sourceJSON?.isMultiServicesView&&(t.userHasUpdateItemPrivileges||t.editingEnabled)}const v=s({types:e});function D(t,e){if(t.defaultSymbol)return t.types?.length?new l({defaultSymbol:v(t.defaultSymbol,t,e),field:t.typeIdField,uniqueValueInfos:t.types.map((t=>({id:t.id,symbol:v(t.symbol,t,e)})))}):new c({symbol:v(t.defaultSymbol,t,e)})}function U(t){let e=t.sourceJSON?.cacheMaxAge;if(!e)return!1;const r=t.editingInfo?.lastEditDate?.getTime();return null==r||(e*=1e3,Date.now()-r<e)}async function V(t,e,n){if(null==e)return null;const o=[],{objectIdField:a}=t;if(e.forEach((t=>{let e=null;if("attributes"in t){const{attributes:r}=t;e={globalId:r[n],objectId:null!=r[a]&&-1!==r[a]?r[a]:null}}else e={globalId:t.globalId,objectId:null!=t.objectId&&-1!==t.objectId?t.objectId:null};null!=e.globalId&&(null!=e.objectId&&-1!==e.objectId||o.push(e.globalId))})),0===o.length)return null;const s=t.createQuery();s.where=o.map((t=>`${n}='${t}'`)).join(" OR "),s.returnGeometry=!1,s.outFields=[a,n],s.cacheHint=!1;const u=await r(i(t,s));if(!u.ok)return null;const c=new Map,l=u.value.features;for(const r of l){const t=r.attributes[n],e=r.attributes[a];null!=t&&null!=e&&-1!==e&&c.set(t,e)}return c}export{m as addAttachment,b as applyEdits,T as computeEffectiveEditingEnabled,D as createDefaultRenderer,x as createQuery,j as deleteAttachments,Q as ensureLayerCredential,I as fetchRecomputedExtents,f as geometryTypeKebabDict,V as getGlobalIdToObjectIdMap,S as hasDataChanged,U as isLayerCacheStale,q as queryAttachments,O as queryExtent,A as queryFeatureCount,F as queryObjectIds,P as queryRelatedFeatures,E as queryRelatedFeaturesCount,R as readGlobalIdField,M as readObjectIdField,C as readVersion,w as updateAttachment,g as uploadAssets};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.28/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import e from"../../core/Error.js";import r from"../../core/Logger.js";import{parseWhereClause as t}from"../../core/sql.js";import{formatDate as n,convertDateFormatToIntlOptions as a}from"../../intl/date.js";import{formatNumber as o}from"../../intl/number.js";import{isNumericField as i}from"./fieldUtils.js";import{getLabelExpression as l,getSingleFieldArcadeExpression as s}from"./labelUtils.js";import{createLabelExpression as u}from"../../support/arcadeOnDemand.js";const c=r.getLogger("esri.layers.support.labelFormatUtils"),f={type:"simple",evaluate:()=>null},p={getAttribute:(e,r)=>e.field(r)};async function m(r,n,a){if(!r||!r.symbol||!n)return f;const o=r.where,i=l(r);let m;if("arcade"===i.type){const r=await u(i.expression,a,n);if(null==r)return f;m={type:"arcade",evaluate(t,n){try{const e=r.evaluate({$view:{timeZone:n},$feature:
|
|
5
|
+
import e from"../../core/Error.js";import r from"../../core/Logger.js";import{parseWhereClause as t}from"../../core/sql.js";import{formatDate as n,convertDateFormatToIntlOptions as a}from"../../intl/date.js";import{formatNumber as o}from"../../intl/number.js";import{isNumericField as i}from"./fieldUtils.js";import{getLabelExpression as l,getSingleFieldArcadeExpression as s}from"./labelUtils.js";import{createLabelExpression as u}from"../../support/arcadeOnDemand.js";const c=r.getLogger("esri.layers.support.labelFormatUtils"),f={type:"simple",evaluate:()=>null},p={getAttribute:(e,r)=>e.field(r)};async function m(r,n,a){if(!r||!r.symbol||!n)return f;const o=r.where,i=l(r);let m;if("arcade"===i.type){const r=await u(i.expression,a,n);if(null==r)return f;m={type:"arcade",evaluate(t,n){try{const e="attributes"in t?r.repurposeFeature(t):t;e.contextTimeZone=n??null;const a=r.evaluate({$view:{timeZone:n},$feature:e},r.services);if(null!=a)return a.toString()}catch(a){c.error(new e("arcade-expression-error","Encountered an error when evaluating label expression for feature",{error:a,feature:t,expression:i}))}return null},needsHydrationToEvaluate:()=>null==s(i.expression)}}else m={type:"simple",evaluate:e=>i.expression.replaceAll(/{[^}]*}/g,(r=>{const t=r.slice(1,-1),a=n.get(t);if(!a)return r;let o=null;if("attributes"in e){e&&e.attributes&&(o=e.attributes[a.name])}else o=e.field(a.name);return null==o?"":d(o,a)}))};if(o){let r;try{r=await t(o,n)}catch(g){return c.error(new e("bad-where-clause","Encountered an error when evaluating where clause, ignoring",{where:o,error:g})),f}const a=m.evaluate;m.evaluate=(t,n)=>{const i="attributes"in t?void 0:p;try{if(r.testFeature(t,i))return a(t,n)}catch(g){c.error(new e("bad-where-clause","Encountered an error when evaluating where clause for feature",{where:o,feature:t,error:g}))}return null}}return m}function d(e,r){if(null==e)return"";const t=r.domain;if(t)if("codedValue"===t.type||"coded-value"===t.type){const r=e;for(const e of t.codedValues)if(e.code===r)return e.name}else if("range"===t.type){const r=+e,n="range"in t?t.range[0]:t.minValue,a="range"in t?t.range[1]:t.maxValue;if(n<=r&&r<=a)return t.name}let l=e;return"date"===r.type||"esriFieldTypeDate"===r.type?l=n(l,a("short-date")):i(r)&&(l=o(+l)),l||""}export{m as createLabelFunction,d as formatField};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.28/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import e from"../../core/Collection.js";import"../../core/has.js";import{
|
|
5
|
+
import e from"../../core/Collection.js";import"../../core/has.js";import{LayerLoadContext as r}from"./LayerLoadContext.js";import{layerLookupMap as a}from"./lazyLayerLoader.js";import t from"../../portal/PortalItem.js";import{isMapNotesLayer as y,isMarkupLayer as i,isRouteLayer as L}from"../../portal/support/featureCollectionUtils.js";import{selectLayerClassPath as o}from"../../portal/support/portalLayers.js";import{loadStyleRenderer as n}from"../../renderers/support/styleUtils.js";async function c(e,r,a){if(!r)return;const t=[];for(const i of r)t.push(g(i,a));const y=await Promise.allSettled(t);for(const i of y)"rejected"===i.status||i.value&&e.add(i.value)}const l={ArcGISDimensionLayer:"DimensionLayer",ArcGISFeatureLayer:"FeatureLayer",ArcGISImageServiceLayer:"ImageryLayer",ArcGISMapServiceLayer:"MapImageLayer",PointCloudLayer:"PointCloudLayer",ArcGISSceneServiceLayer:"SceneLayer",IntegratedMeshLayer:"IntegratedMeshLayer",OGCFeatureLayer:"OGCFeatureLayer",BuildingSceneLayer:"BuildingSceneLayer",ArcGISTiledElevationServiceLayer:"ElevationLayer",ArcGISTiledImageServiceLayer:"ImageryTileLayer",ArcGISTiledMapServiceLayer:"TileLayer",GroupLayer:"GroupLayer",GeoJSON:"GeoJSONLayer",WebTiledLayer:"WebTileLayer",CSV:"CSVLayer",VectorTileLayer:"VectorTileLayer",WFS:"WFSLayer",WMS:"WMSLayer",DefaultTileLayer:"TileLayer",KML:"KMLLayer",RasterDataLayer:"UnsupportedLayer",Voxel:"VoxelLayer",LineOfSightLayer:"LineOfSightLayer"},s={ArcGISTiledElevationServiceLayer:"ElevationLayer",DefaultTileLayer:"ElevationLayer",RasterDataElevationLayer:"UnsupportedLayer"},p={ArcGISFeatureLayer:"FeatureLayer"},S={ArcGISTiledMapServiceLayer:"TileLayer",ArcGISTiledImageServiceLayer:"ImageryTileLayer",OpenStreetMap:"OpenStreetMapLayer",WebTiledLayer:"WebTileLayer",VectorTileLayer:"VectorTileLayer",ArcGISImageServiceLayer:"UnsupportedLayer",WMS:"UnsupportedLayer",ArcGISMapServiceLayer:"UnsupportedLayer",ArcGISSceneServiceLayer:"SceneLayer",DefaultTileLayer:"TileLayer"},u={ArcGISAnnotationLayer:"UnsupportedLayer",ArcGISDimensionLayer:"UnsupportedLayer",ArcGISFeatureLayer:"FeatureLayer",ArcGISImageServiceLayer:"ImageryLayer",ArcGISImageServiceVectorLayer:"ImageryLayer",ArcGISMapServiceLayer:"MapImageLayer",ArcGISStreamLayer:"StreamLayer",ArcGISTiledImageServiceLayer:"ImageryTileLayer",ArcGISTiledMapServiceLayer:"TileLayer",BingMapsAerial:"BingMapsLayer",BingMapsRoad:"BingMapsLayer",BingMapsHybrid:"BingMapsLayer",CSV:"CSVLayer",DefaultTileLayer:"TileLayer",GeoRSS:"GeoRSSLayer",GeoJSON:"GeoJSONLayer",GroupLayer:"GroupLayer",KML:"KMLLayer",MediaLayer:"MediaLayer",OGCFeatureLayer:"OGCFeatureLayer",OrientedImageryLayer:"OrientedImageryLayer",SubtypeGroupLayer:"SubtypeGroupLayer",VectorTileLayer:"VectorTileLayer",WFS:"WFSLayer",WMS:"WMSLayer",WebTiledLayer:"WebTileLayer"},d={ArcGISFeatureLayer:"FeatureLayer"},I={ArcGISImageServiceLayer:"ImageryLayer",ArcGISImageServiceVectorLayer:"ImageryLayer",ArcGISMapServiceLayer:"MapImageLayer",ArcGISTiledImageServiceLayer:"ImageryTileLayer",ArcGISTiledMapServiceLayer:"TileLayer",OpenStreetMap:"OpenStreetMapLayer",VectorTileLayer:"VectorTileLayer",WebTiledLayer:"WebTileLayer",BingMapsAerial:"BingMapsLayer",BingMapsRoad:"BingMapsLayer",BingMapsHybrid:"BingMapsLayer",WMS:"WMSLayer",DefaultTileLayer:"TileLayer"},m={...u,LinkChartLayer:"LinkChartLayer"},f={...d},T={...I};async function g(e,r){return G(await M(e,r),e,r)}async function G(e,r,a){const t=new e;return t.read(r,a.context),"group"===t.type&&("GroupLayer"===r.layerType?await w(t,r,a):v(r)?h(t,r,a.context):A(r)&&await C(t,r,a.context)),await n(t,a.context),t}async function M(e,n){const c=n.context,l=b(c);let s=e.layerType||e.type;!s&&n?.defaultLayerType&&(s=n.defaultLayerType);const p=l[s];let S=p?a[p]:a.UnknownLayer;if(v(e)){const y=c?.portal;if(e.itemId){const i=new t({id:e.itemId,portal:y});await i.load();const L=(await o(i,new r)).className||"UnknownLayer";S=a[L]}}else"ArcGISFeatureLayer"===s?y(e)||i(e)?S=a.MapNotesLayer:L(e)?S=a.RouteLayer:A(e)&&(S=a.GroupLayer):e.wmtsInfo?.url&&e.wmtsInfo.layerIdentifier?S=a.WMTSLayer:"WFS"===s&&"2.0.0"!==e.wfsInfo?.version&&(S=a.UnsupportedLayer);return S()}function A(e){if("ArcGISFeatureLayer"!==e.layerType||v(e))return!1;return(e.featureCollection?.layers?.length??0)>1}function v(e){return"Feature Collection"===e.type}function b(e){let r;switch(e.origin){case"web-scene":switch(e.layerContainerType){case"basemap":r=S;break;case"ground":r=s;break;case"tables":r=p;break;default:r=l}break;case"link-chart":switch(e.layerContainerType){case"basemap":r=T;break;case"tables":r=f;break;default:r=m}break;default:switch(e.layerContainerType){case"basemap":r=I;break;case"tables":r=d;break;default:r=u}}return r}async function w(r,a,t){const y=new e,i=c(y,Array.isArray(a.layers)?a.layers:[],t);try{try{if(await i,"group"===r.type)return r.layers.addMany(y),r}catch(L){r.destroy();for(const e of y)e.destroy();throw L}}catch(L){throw L}}function h(e,r,a){r.itemId&&(e.portalItem=new t({id:r.itemId,portal:a?.portal}),e.when((()=>{const t=t=>{const y=t.layerId;F(t,e,r,y,a);const i=r.featureCollection?.layers?.[y];i&&t.read(i,a)};e.layers?.forEach(t),e.tables?.forEach(t)})))}async function C(e,r,t){const y=a.FeatureLayer,i=await y(),L=r.featureCollection,o=L?.showLegend,n=L?.layers?.map(((a,y)=>{const L=new i;L.read(a,t);const n={...t,ignoreDefaults:!0};return F(L,e,r,y,n),null!=o&&L.read({showLegend:o},n),L}));e.layers.addMany(n??[])}function F(e,r,a,t,y){e.read({id:`${r.id}-sublayer-${t}`,visibility:a.visibleLayers?.includes(t)??!0},y)}export{w as populateGroupLayer,c as populateOperationalLayers};
|
package/package.json
CHANGED