@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
6 lines (5 loc) • 2.74 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{_ as r}from"../../chunks/tslib.es6.js";import{property as a}from"../../core/accessorSupport/decorators/property.js";import"../../core/has.js";import"../../core/Logger.js";import"../../core/RandomLCG.js";import{reader as s}from"../../core/accessorSupport/decorators/reader.js";import{subclass as i}from"../../core/accessorSupport/decorators/subclass.js";import{writer as e}from"../../core/accessorSupport/decorators/writer.js";import{collectField as t,collectArcadeFieldNames as o}from"../../layers/support/fieldUtils.js";import l from"../visualVariables/ColorVariable.js";import u from"../visualVariables/OpacityVariable.js";import p from"../visualVariables/RotationVariable.js";import V from"../visualVariables/SizeVariable.js";import c from"../visualVariables/VisualVariable.js";import n from"../visualVariables/VisualVariableFactory.js";import{matchRandomRotationExpression as b}from"../../support/arcadeExpressionUtils.js";const m={base:c,key:"type",typeMap:{opacity:u,color:l,rotation:p,size:V}},v=l=>{let u=class extends l{constructor(){super(...arguments),this._vvFactory=new n}set visualVariables(r){this._vvFactory.visualVariables=r,this._set("visualVariables",this._vvFactory.visualVariables)}readVisualVariables(r,a,s){return this._vvFactory.readVariables(r,a,s)}writeVisualVariables(r,a,s,i){a[s]=this._vvFactory.writeVariables(r,i)}get arcadeRequiredForVisualVariables(){return this.visualVariables?.some((({arcadeRequired:r})=>r))??!1}hasVisualVariables(r,a){return r?this.getVisualVariablesForType(r,a).length>0:this.getVisualVariablesForType("size",a).length>0||this.getVisualVariablesForType("color",a).length>0||this.getVisualVariablesForType("opacity",a).length>0||this.getVisualVariablesForType("rotation",a).length>0}getVisualVariablesForType(r,a){return this.visualVariables?.filter((s=>s.type===r&&("string"==typeof a?s.target===a:!1!==a||!s.target)))??[]}async collectVVRequiredFields(r,a){let s=[];this.visualVariables&&(s=s.concat(this.visualVariables));for(const i of s)i&&(i.field&&t(r,a,i.field),i.normalizationField&&t(r,a,i.normalizationField),i.valueExpression&&(y(i.valueExpression,r,a)||await o(r,a,i.valueExpression)))}};return r([a({types:[m],value:null,json:{write:!0}})],u.prototype,"visualVariables",null),r([s("visualVariables",["visualVariables","rotationType","rotationExpression"])],u.prototype,"readVisualVariables",null),r([e("visualVariables")],u.prototype,"writeVisualVariables",null),u=r([i("esri.renderers.mixins.VisualVariablesMixin")],u),u};function y(r,a,s){const i=b(r);return null!=i&&(t(a,s,i),!0)}export{v as VisualVariablesMixin};