UNPKG

@arcgis/core

Version:

ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API

3 lines (2 loc) 2.23 kB
/* COPYRIGHT Esri - https://js.arcgis.com/5.0.19/LICENSE.txt */ import{clone as e}from"../../core/lang.js";import{getDeepValue as t}from"../../core/object.js";import{numberToJSON as n}from"../../core/accessorSupport/extensions/serializableProperty/writer.js";import{isFeatureCollectionLayer as r}from"../../layers/support/layerUtils.js";import{addLayerUnsupportedError as i}from"./unsupportedErrors.js";const o=new Set(["bing-maps","imagery","imagery-tile","map-image","open-street-map","tile","unknown","unsupported","vector-tile","web-tile","wcs","wms","wmts"]),l=new Set(["integrated-mesh-3dtiles"]),a=new Set(["catalog","csv","feature","geo-rss","geojson","group","imagery","imagery-tile","kml","knowledge-graph","map-image","map-notes","media","ogc-feature","oriented-imagery","parquet","route","stream","subtype-group","tile","unknown","unsupported","vector-tile","video","web-tile","wcs","wfs","wms","wmts"]),s=new Set([...a,"link-chart"]);function u(e){o.delete(e),a.delete(e)}function c(e){o.add(e),a.add(e)}function d(e){switch(e.layerContainerType){case"basemap-base-layers":return o;case"basemap-ground-layers":return l;case"operational-layers":return"link-chart"===e.origin?s:a;default:return null}}function m(e,t){if(t.restrictedWebMapWriting){const n=d(t);return null==n||n.has(e.type)&&!r(e)}return!0}function p(e,n){if(n)if(r(e)){const r=t("featureCollection.layers",n),i=r?.[0]?.layerDefinition;i&&f(e,i)}else"group"!==e.type&&f(e,n)}function f(e,t){"maxScale"in e&&(t.maxScale=n(e.maxScale)??void 0),"minScale"in e&&(t.minScale=n(e.minScale)??void 0)}function g(e,t){if(p(e,t),t&&(t.id=e.id,"blendMode"in e&&(t.blendMode=e.blendMode,"normal"===t.blendMode&&delete t.blendMode),t.opacity=n(e.opacity)??void 0,t.title=e.title||"Layer",t.visibility=e.visible,"legendEnabled"in e&&"wmts"!==e.type))if(r(e)){const n=t.featureCollection;n&&(n.showLegend=e.legendEnabled)}else t.showLegend=e.legendEnabled}function w(t,n,o){if(!t.persistenceEnabled)return null;if(!("write"in t)||!t.write)return i(o,t),null;if(r(t)&&!t.isTable)n=t.resourceInfo;else if(m(t,o)){const e={};return t.write(e,o)?e:null}return null!=n&&g(t,n=e(n)),n}export{c as disableRestrictedWriting,u as enableRestrictedWriting,w as getLayerJSON};