@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
6 lines (5 loc) • 1.76 kB
JavaScript
/*
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
See https://js.arcgis.com/4.33/esri/copyright.txt for details.
*/
import{isSome as r}from"../../core/arrayUtils.js";import"../../core/has.js";import e from"../../core/Error.js";import{defaultTo3DOptions as n,to3D as o}from"../../symbols/support/symbolConversion.js";function s(r){return null==r||"simple"===r.type||"unique-value"===r.type||"class-breaks"===r.type||"dictionary"===r.type||"heatmap"===r.type}function t(r,n){if(null==r)return null;if(!s(r))return new e("renderer-conversion-3d:unsupported-renderer",`Unsupported renderer of type '${r.type||r.declaredClass}'`,{renderer:r});switch(r.type){case"simple":return a(r,n);case"unique-value":return u(r,n);case"class-breaks":return i(r,n);case"dictionary":case"heatmap":return null}return null}function l(r,n){if(!n)return null;if(Array.isArray(n)||(n=[n]),n.length>0){const o=n.map((r=>r.details.symbol.type||r.details.symbol.declaredClass)).filter((r=>!!r));o.sort();const s=new Array;return o.forEach(((r,e)=>{0!==e&&r===o[e-1]||s.push(r)})),new e("renderer-conversion-3d:unsupported-symbols",`Renderer contains symbols (${s.join(", ")}) which are not supported in 3D`,{renderer:r,symbolErrors:n})}return null}function a(r,e){const s={...n,...e,cimFallbackEnabled:!0};return l(r,o(r.symbol,s).error)}function u(e,s){const t={...n,...s,cimFallbackEnabled:!0},a=e.uniqueValueInfos?.map((r=>o(r.symbol,t).error)).filter(r),u=o(e.defaultSymbol,t);return u.error&&a?.unshift(u.error),l(e,a)}function i(e,s){const t={...n,...s,cimFallbackEnabled:!0},a=e.classBreakInfos.map((r=>o(r.symbol,t).error)).filter(r),u=o(e.defaultSymbol,t);return u.error&&a.unshift(u.error),l(e,a)}export{s as isSupportedRenderer3D,t as validateTo3D};