@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
3 lines (2 loc) • 1.63 kB
JavaScript
/* COPYRIGHT Esri - https://js.arcgis.com/5.0.8/LICENSE.txt */
import{isSome as r}from"../../core/arrayUtils.js";import e from"../../core/Error.js";import{defaultTo3DOptions as n,to3D as o}from"../../symbols/support/symbolConversion.js";function t(r){return null==r||"simple"===r.type||"unique-value"===r.type||"class-breaks"===r.type||"dictionary"===r.type||"heatmap"===r.type}function s(r,n){if(null==r)return null;if(!t(r))return new e("renderer-conversion-3d:unsupported-renderer",`Unsupported renderer of type '${r.type}'`,{renderer:r});switch(r.type){case"simple":return u(r,n);case"unique-value":return a(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 t=new Array;return o.forEach((r,e)=>{0!==e&&r===o[e-1]||t.push(r)}),new e("renderer-conversion-3d:unsupported-symbols",`Renderer contains symbols (${t.join(", ")}) which are not supported in 3D`,{renderer:r,symbolErrors:n})}return null}function u(r,e){const t={...n,...e,cimFallbackEnabled:!0};return l(r,o(r.symbol,t).error)}function a(e,t){const s={...n,...t,cimFallbackEnabled:!0},u=e.uniqueValueInfos?.map(r=>o(r.symbol,s).error).filter(r),a=o(e.defaultSymbol,s);return a.error&&u?.unshift(a.error),l(e,u)}function i(e,t){const s={...n,...t,cimFallbackEnabled:!0},u=e.classBreakInfos.map(r=>o(r.symbol,s).error).filter(r),a=o(e.defaultSymbol,s);return a.error&&u.unshift(a.error),l(e,u)}export{t as isSupportedRenderer3D,s as validateTo3D};