UNPKG

@arcgis/core

Version:

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

6 lines (5 loc) 1.87 kB
/* All material copyright ESRI, All Rights Reserved, unless otherwise specified. See https://js.arcgis.com/4.33/esri/copyright.txt for details. */ import e from"../../Graphic.js";import{px2pt as t}from"../../core/screenUtils.js";import{isSharedTemplateMetadata as r,isStandardFeatureTemplate as i}from"../../editing/templateUtils.js";import{isGraphic as n}from"../../support/guards.js";import{renderPreviewHTML as o}from"../../symbols/support/symbolUtils.js";async function a(e,a,m){if(!n(e)&&r(e)&&e.thumbnail){const t=`data:image/png;base64,${e.thumbnail.imageData}`,r=document.createElement("div");return r.classList.add("esri-thumbnail-preview"),"geometryType"in a&&a.geometryType&&r.classList.add(`esri-thumbnail-preview--${a.geometryType}`),r.style.backgroundImage=`url(${t})`,r}const l=await s(a,e);if(null==l)return null;const p={maxSize:t(m?.maxSize??32),ariaLabel:m?.ariaLabel};if((n(e)||i(e))&&"renderer"in a&&"dictionary"===a.renderer?.type&&(p.fieldMap=a.renderer.fieldMap??void 0,p.feature=n(e)?e:{attributes:e.prototype.attributes??{}}),n(e)&&e.geometry&&!1!==m?.useGeometry&&!e.geometry.type.includes("point")){p.geometry=e.geometry,p.useMarkerSymbolSize=!1;const r=t(m?.maxSize??22);p.size={width:r,height:r}}return await o(l,p)}async function s(t,i){if(!n(i)&&r(i))return m(t);if("renderer"in t&&t.renderer){const{renderer:r}=t,o=n(i)?i:new e({attributes:i.prototype.attributes});if("getSymbolAsync"in r){const e=await r.getSymbolAsync(o);if(e)return e}}return m(t)}async function m(e){if(!("geometryType"in e))return null;const{geometryType:t}=e,r="point"===t||"multipoint"===t?await import("../../symbols/SimpleMarkerSymbol.js"):"polyline"===t?await import("../../symbols/SimpleLineSymbol.js"):"polygon"===t||"mesh"===t||"multipatch"===t?await import("../../symbols/SimpleFillSymbol.js"):null;return r?new r.default:null}export{a as fetchThumbnail};