12345 |
- /*
- All material copyright ESRI, All Rights Reserved, unless otherwise specified.
- See https://js.arcgis.com/4.25/esri/copyright.txt for details.
- */
- import i from"../../core/Error.js";import{isSome as e}from"../../core/maybe.js";import a from"../../renderers/support/AuthoringInfo.js";import r from"../../renderers/support/AuthoringInfoVisualVariable.js";import s from"../../renderers/visualVariables/OpacityVariable.js";import{verifyBasicFieldValidity as l,createStopValues as n,getDefaultDataRange as o}from"./support/utils.js";import t from"../statistics/summaryStatistics.js";import{verifyBinningParams as p}from"../support/binningUtils.js";import{getFieldsList as u}from"../support/utils.js";import{binningCapableLayerTypes as m,featureCapableLayerTypes as f,createLayerAdapter as d,getLayerTypeLabels as v}from"../support/adapters/support/layerUtils.js";const c="date";async function y(a){if(!(a&&a.layer&&(a.field||a.valueExpression||a.sqlExpression)))throw new i("opacity-visual-variable:missing-parameters","'layer' and 'field', 'valueExpression' or 'sqlExpression' parameters are required");if(a.valueExpression&&!a.view)throw new i("opacity-visual-variable:missing-parameters","View is required when 'valueExpression' is specified");a.forBinning&&p(a,"opacity-visual-variable");const r={...a},s=a.forBinning?m:f,n=d(r.layer,s,a.forBinning);if(r.layer=n,!n)throw new i("opacity-visual-variable:invalid-parameters","'layer' must be one of these types: "+v(s).join(", "));const o=e(r.signal)?{signal:r.signal}:null;await n.load(o);const t=await u({field:r.field,normalizationField:r.normalizationField,valueExpression:r.valueExpression}),c=l(n,t,"opacity-visual-variable:invalid-parameters");if(c)throw c;return r}function x(i,e){const l=e.layer,t=e.field,p=t&&!("function"==typeof t)?l.getField(t):null,u=p&&p.type===c,m=n(i),f=o(i,u,!0),d=f||[m[0],m[4]],v=new s({field:t,valueExpression:e.valueExpression,valueExpressionTitle:e.valueExpressionTitle,normalizationField:e.normalizationField,stops:[{value:d[0],opacity:.3},{value:d[1],opacity:1}],legendOptions:e.legendOptions}),y=new r({type:"opacity",minSliderValue:null!=e.minValue?e.minValue:i.min,maxSliderValue:null!=e.maxValue?e.maxValue:i.max}),x=new a({visualVariables:[y]});return Promise.resolve({visualVariable:v,statistics:i,defaultValuesUsed:!!f,authoringInfo:x})}async function w(i){const e=await y(i);let a=null;return a=e.statistics?e.statistics:await t({layer:e.layer,field:e.field,valueExpression:e.valueExpression,sqlExpression:e.sqlExpression,sqlWhere:e.sqlWhere,normalizationType:e.normalizationField?"field":void 0,normalizationField:e.normalizationField,minValue:e.minValue,maxValue:e.maxValue,view:e.view,signal:e.signal}),x(a,e)}export{w as createVisualVariable};
|