VisualVariablesMixin.js 2.8 KB

12345
  1. /*
  2. All material copyright ESRI, All Rights Reserved, unless otherwise specified.
  3. See https://js.arcgis.com/4.25/esri/copyright.txt for details.
  4. */
  5. import{_ as r}from"../../chunks/tslib.es6.js";import{isSome as a}from"../../core/maybe.js";import{property as s}from"../../core/accessorSupport/decorators/property.js";import"../../core/arrayUtils.js";import"../../core/accessorSupport/ensureType.js";import{reader as i}from"../../core/accessorSupport/decorators/reader.js";import{subclass as e}from"../../core/accessorSupport/decorators/subclass.js";import{writer as t}from"../../core/accessorSupport/decorators/writer.js";import{collectField as o,collectArcadeFieldNames as l}from"../../layers/support/fieldUtils.js";import{matchRandomRotationExpression as u}from"../support/randomRotationExpression.js";import p from"../visualVariables/ColorVariable.js";import V from"../visualVariables/OpacityVariable.js";import n from"../visualVariables/RotationVariable.js";import c from"../visualVariables/SizeVariable.js";import b from"../visualVariables/VisualVariable.js";import m from"../visualVariables/VisualVariableFactory.js";const v={base:b,key:"type",typeMap:{opacity:V,color:p,rotation:n,size:c}},y=a=>{let u=class extends a{constructor(){super(...arguments),this._vvFactory=new m}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(){if(!this.visualVariables)return!1;for(const r of this.visualVariables)if(r.arcadeRequired)return!0;return!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){const s=this.visualVariables;return s?s.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&&o(r,a,i.field),i.normalizationField&&o(r,a,i.normalizationField),i.valueExpression&&(f(i.valueExpression,r,a)||await l(r,a,i.valueExpression)))}};return r([s({types:[v],value:null,json:{write:!0}})],u.prototype,"visualVariables",null),r([i("visualVariables",["visualVariables","rotationType","rotationExpression"])],u.prototype,"readVisualVariables",null),r([t("visualVariables")],u.prototype,"writeVisualVariables",null),u=r([e("esri.renderers.mixins.VisualVariablesMixin")],u),u};function f(r,s,i){const e=u(r);return!!a(e)&&(o(s,i,e),!0)}export{y as VisualVariablesMixin};