UNPKG

@arcgis/core

Version:

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

6 lines (5 loc) 1.56 kB
/* All material copyright ESRI, All Rights Reserved, unless otherwise specified. See https://js.arcgis.com/4.32/esri/copyright.txt for details. */ import{save as e,saveAs as t}from"./utils.js";import{getWGS84ExtentForItem as r,removeTypeKeyword as a,typeKeyword as s,toggleTypeKeyword as i}from"../../portal/support/portalItemUtils.js";const y="Image Service",l="imagery-layer-save",n="imagery-layer-save-as",m="imagery-tile-layer-save",o="imagery-tile-layer-save-as",c="WCS",p="wcs-layer-save",u="wcs-layer-save-as";function g(e){if("imagery"===e.type||"wcs"===e.type)return{isValid:!0};const{raster:t}=e,r="Function"===t?.datasetFormat?t.primaryRasters?.rasters[0]:t;return{isValid:"RasterTileServer"===r?.datasetFormat&&("Raster"===r.tileType||"Map"===r.tileType),errorMessage:"imagery tile layer should be created from a tiled image service."}}function v(e){const t=e.layerJSON;return Promise.resolve(t&&Object.keys(t).length?t:null)}async function f(e,t){const{parsedUrl:y,title:l,fullExtent:n}=e;t.url=y.path,t.title||=l;try{t.extent=await r(n)}catch{t.extent=void 0}a(t,s.METADATA),i(t,s.TILED_IMAGERY,"imagery-tile"===e.type)}async function d(t,r){const a="imagery"===t.type?l:"imagery-tile"===t.type?m:p,s="wcs"===t.type?c:y;return e({layer:t,itemType:s,validateLayer:g,createItemData:v,errorNamePrefix:a},r)}async function I(e,r,a){const s="imagery"===e.type?n:"imagery-tile"===e.type?o:u,i="wcs"===e.type?c:y;return t({layer:e,itemType:i,validateLayer:g,createItemData:v,errorNamePrefix:s,newItem:r,setItemProperties:f},a)}export{d as save,I as saveAs};