@doegis/core
Version:
DOE GIS API
3 lines (1 loc) • 2.01 kB
JavaScript
import{isSymbol3D as t}from"../../symbols.js";import{isDevEnvironment as e,adjustStaticAGOUrl as r}from"../../core/devEnvironmentUtils.js";import o from"../../core/Error.js";import{unwrapOrThrow as l,isSome as n}from"../../core/maybe.js";import{urlToObject as m,removeFile as s}from"../../core/urlUtils.js";import a from"../../portal/Portal.js";import{f as i}from"../../chunks/persistableUrlUtils.js";import{fromJSON as p}from"./jsonUtils.js";import u from"./StyleOrigin.js";import{fetchStyle as f,symbolUrlFromStyleItem as y,requestJSON as c,makeCIMSymbolRef as b,Style2DUrlTemplate as g}from"./styleUtils.js";import{Thumbnail as j}from"./Thumbnail.js";function h(t,e,r,n){return t.name?t.styleName&&"Esri2DPointSymbolsStyle"===t.styleName?U(t,e,n):f(t,e,n).then((o=>d(l(o),t.name,e,r,n))):Promise.reject(new o("symbolstyleutils:style-symbol-reference-name-missing","Missing name in style symbol reference"))}function d(l,f,g,h,d){const U=l.data,N=g&&n(g.portal)?g.portal:a.getDefault(),w={portal:N,url:m(l.baseUrl),origin:"portal-item"},S=U.items.find((t=>t.name===f));if(!S){const t=`The symbol name '${f}' could not be found`;return Promise.reject(new o("symbolstyleutils:symbol-name-not-found",t,{symbolName:f}))}let D=i(y(S,h),w),O=S.thumbnail?.href??null;const P=S.thumbnail&&S.thumbnail.imageData;e()&&(D=r(D)??"",O=r(O));const E={portal:N,url:m(s(D)),origin:"portal-item"};return c(D,d).then((e=>{const r="cimRef"===h?b(e.data):e.data,o=p(r,E);if(o&&t(o)){if(O){const t=i(O,w);o.thumbnail=new j({url:t})}else P&&(o.thumbnail=new j({url:`data:image/png;base64,${P}`}));l.styleUrl?o.styleOrigin=new u({portal:g.portal,styleUrl:l.styleUrl,name:f}):l.styleName&&(o.styleOrigin=new u({portal:g.portal,styleName:l.styleName,name:f}))}return o}))}function U(t,e,r){const o=g.replace(/\{SymbolName\}/gi,t.name),l=n(e.portal)?e.portal:a.getDefault();return c(o,r).then((t=>{const e=b(t.data);return p(e,{portal:l,url:m(s(o)),origin:"portal-item"})}))}export{d as fetchSymbolFromStyle,h as resolveWebStyleSymbol};