1 |
- import{U as T,g as c,cr as S,bO as F,cu as f,cs as j,cv as G}from"./index.6c049565.js";import{e as D}from"./jsonContext.e9416d90.js";import{s as M}from"./portalItemUtils.6b2af26d.js";async function b(e){const{data:r}=await T(e,{responseType:"json",query:{f:"json"}});return r}async function O(e,r){const t=e.instance.portalItem;if(t&&t.id)return await t.load(r),P(e),x(e,r)}function P(e){const r=e.instance.portalItem;if(!e.supportedTypes.includes(r.type))throw new c("portal:invalid-layer-item-type","Invalid layer item type '${type}', expected '${expectedType}'",{type:r.type,expectedType:e.supportedTypes.join(", ")})}async function x(e,r){const t=e.instance,a=t.portalItem,{url:n,title:l}=a,o=D(a);if(t.type==="group")return t.read({title:l},o),$(t,e);n&&t.read({url:n},o);const i=await g(e,r);return i&&t.read(i,o),t.resourceReferences={portalItem:a,paths:o.readResourcePaths},t.type!=="subtype-group"&&t.read({title:l},o),S(t,o)}function $(e,r){var i;let t;const a=e.portalItem.type,n=r.layerModuleTypeMap,l=(i=M(e.portalItem,"Oriented Imagery Layer"))!=null?i:!1;switch(a){case"Feature Service":t=l?n.OrientedImageryLayer:n.FeatureLayer;break;case"Stream Service":t=n.StreamLayer;break;case"Scene Service":t=n.SceneLayer;break;case"Feature Collection":t=n.FeatureLayer;break;default:throw new c("portal:unsupported-item-type-as-group",`The item type '${a}' is not supported as a 'IGroupLayer'`)}let o;return t().then(s=>(o=s,g(r))).then(async s=>{let u=()=>o;if(a==="Feature Service"){if(d(s=await h(s,e.portalItem.url)).length){const v=n.SubtypeGroupLayer,w=await v();u=L=>L.layerType==="SubtypeGroupLayer"?w:o}return y(e,u,s)}return p(s)>0?y(e,u,s):k(e,u)})}function k(e,r){return e.portalItem.url?b(e.portalItem.url).then(t=>{var n,l;function a(o){return{id:o.id,name:o.name}}t&&y(e,r,{layers:(n=t.layers)==null?void 0:n.map(a),tables:(l=t.tables)==null?void 0:l.map(a)})}):Promise.resolve()}function y(e,r,t){let a=t.layers||[];const n=t.tables||[];if(e.portalItem.type==="Feature Collection"&&(a.forEach(l=>{var o;((o=l==null?void 0:l.layerDefinition)==null?void 0:o.type)==="Table"&&n.push(l)}),a=a.filter(l=>{var o;return((o=l==null?void 0:l.layerDefinition)==null?void 0:o.type)!=="Table"})),"coverage"in t){const l=_(t);e.add(l)}a.reverse().forEach(l=>{const o=m(e,r(l),t,l);e.add(o)}),n.reverse().forEach(l=>{const o=m(e,r(l),t,l);e.tables.add(o)})}function m(e,r,t,a){const n=new r({portalItem:e.portalItem.clone(),layerId:a.id});if(n.type!=="subtype-group"&&(n.sublayerTitleMode="service-name"),e.portalItem.type==="Feature Collection"){const l={origin:"portal-item",portal:e.portalItem.portal||F.getDefault()};n.read(a,l);const o=t.showLegend;o!=null&&n.read({showLegend:o},l)}return n}function g(e,r){if(e.supportsData===!1)return Promise.resolve(void 0);const t=e.instance;return t.portalItem.fetchData("json",r).catch(()=>null).then(a=>{if(E(t)){let n,l=!0;if(a&&p(a)>0){if(t.layerId==null){const o=d(a);t.layerId=t.type==="subtype-group"?o==null?void 0:o[0]:I(a)}n=C(a,t),n&&(p(a)===1&&(l=!1),a.showLegend!=null&&(n.showLegend=a.showLegend))}return l&&t.sublayerTitleMode!=="service-name"&&(t.sublayerTitleMode="item-title-and-service-name"),n}return a})}async function h(e,r){if((e==null?void 0:e.layers)==null||(e==null?void 0:e.tables)==null){const t=await b(r);(e=e||{}).layers=e.layers||(t==null?void 0:t.layers),e.tables=e.tables||(t==null?void 0:t.tables)}return e}function I(e){const r=e.layers;if(r&&r.length)return r[0].id;const t=e.tables;return t&&t.length?t[0].id:null}function C(e,r){var n,l;const{layerId:t}=r,a=((n=e.layers)==null?void 0:n.find(o=>o.id===t))||((l=e.tables)==null?void 0:l.find(o=>o.id===t));return a&&R(a,r)?a:null}function p(e){var r,t,a,n;return((t=(r=e==null?void 0:e.layers)==null?void 0:r.length)!=null?t:0)+((n=(a=e==null?void 0:e.tables)==null?void 0:a.length)!=null?n:0)}function E(e){return e.type!=="stream"&&e.type!=="oriented-imagery"&&"layerId"in e}function _(e){const{coverage:r}=e;if(!r)return null;const t=new URL(r);if(r.toLowerCase().includes("item.html")){const a=t.searchParams.get("id"),n=t.origin;return f.fromPortalItem({portalItem:new j({id:a,url:n})})}if(G(r))return f.fromArcGISServerUrl({url:r});throw new c("portal:oriented-imagery-layer-coverage","the provided coverage url couldn't be loaded as a layer")}function d(e){var t;const r=[];return(t=e==null?void 0:e.layers)==null||t.forEach(a=>{a.layerType==="SubtypeGroupLayer"&&r.push(a.id)}),r}function R(e,r){return!(r.type==="feature"&&"layerType"in e&&e.layerType==="SubtypeGroupLayer"||r.type==="subtype-group"&&!("layerType"in e))}var z=Object.freeze(Object.defineProperty({__proto__:null,getFirstLayerOrTableId:I,getNumLayersAndTables:p,getSubtypeGroupLayerIds:d,load:O,preprocessFSItemData:h},Symbol.toStringTag,{value:"Module"}));export{d as T,h as b,I as g,z as l,b as n,p as w};
|