@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
6 lines (5 loc) • 2.47 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 e from"../../Color.js";import{RenderingInfo as t}from"./RenderingInfo.js";import{getVisualVariableValues as o}from"../visualVariables/support/visualVariableUtils.js";function i(e,t){if(null!=e.symbol)return e.symbol;const o=t?.renderer;return null!=o&&"dot-density"!==o.type?o.getSymbol(e,t):null}function r(e,r){const l=i(e,r);if(null==l)return null;const n=r?.renderer,a=new t(n,l);if(null==n||!("visualVariables"in n)||!n.visualVariables)return a;const s=o(n,e,r)??[],u=["proportional","proportional","proportional"];for(const{variable:t,value:o}of s)if(null!=o||"size"===t.type&&t.useSymbolValue)switch(t.type){case"color":a.color=o?.toRgba();break;case"size":if("outline"===t.target)a.outlineSize=o;else{const e=t.axis,i=t.useSymbolValue?"symbol-value":o??"proportional";switch(e){case"width":u[0]=i;break;case"depth":u[1]=i;break;case"height":u[2]=i;break;case"width-and-depth":u[0]=u[1]=i;break;default:u[0]=u[1]=u[2]=i}}break;case"opacity":a.opacity=o;break;case"rotation":switch(t.axis){case"tilt":a.tilt=o;break;case"roll":a.roll=o;break;default:a.heading=o}}return"proportional"===u[0]&&"proportional"===u[1]&&"proportional"===u[2]||(a.size=u),a}async function l(e,t){return null!=e.symbol?e.symbol:t?.renderer?.getSymbolAsync(e,t)??null}async function n(i,r){const n=await l(i,r);if(!n)return null;const a=r?.renderer,s=new t(a,n);if(!a||!("visualVariables"in a)||!a.visualVariables)return s;const u=o(a,i,r)??[],p=["proportional","proportional","proportional"];for(const{variable:t,value:o}of u)if("color"===t.type)s.color=e.toUnitRGBA(o);else if("size"===t.type)if("outline"===t.target)s.outlineSize=o;else{const e=t.axis,i=t.useSymbolValue?"symbol-value":o;"width"===e?p[0]=i:"depth"===e?p[1]=i:"height"===e?p[2]=i:p[0]=p[1]="width-and-depth"===e?i:p[2]=i}else"opacity"===t.type?s.opacity=o:"rotation"===t.type&&"tilt"===t.axis?s.tilt=o:"rotation"===t.type&&"roll"===t.axis?s.roll=o:"rotation"===t.type&&(s.heading=o);return(isFinite(p[0])||isFinite(p[1])||isFinite(p[2]))&&(s.size=p),s}function a(e,t=0){const o=e[t];return"number"==typeof o&&isFinite(o)?o:null}function s(e){for(let t=0;t<3;t++){const o=e[t];if("number"==typeof o)return isFinite(o)?o:0}return 0}export{a as getDriverAxisSizeValue,s as getDriverAxisSizeValueAny,r as getRenderingInfo,n as getRenderingInfoAsync,l as getSymbolAsync};