You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
13 lines
5.1 KiB
13 lines
5.1 KiB
// All material copyright Esri, All Rights Reserved, unless otherwise specified. |
|
// See https://js.arcgis.com/4.30/esri/copyright.txt for details. |
|
//>>built |
|
define("exports ../../Color ../../core/colorUtils ../../core/lang ../../support/arcadeOnDemand ./utils ../../views/2d/arcade/callExpressionWithFeature".split(" "),function(q,t,u,r,v,m,w){class f{static findApplicableOverrides(a,b,c){if(a&&b){if(a.primitiveName){let e=!1;for(const d of c)if(d.primitiveName===a.primitiveName){e=!0;break}if(!e)for(const d of b)d.primitiveName===a.primitiveName&&c.push(d)}switch(a.type){case "CIMPointSymbol":case "CIMLineSymbol":case "CIMPolygonSymbol":if(a.effects)for(const e of a.effects)f.findApplicableOverrides(e, |
|
b,c);if(a.symbolLayers)for(const e of a.symbolLayers)f.findApplicableOverrides(e,b,c);break;case "CIMSolidStroke":case "CIMPictureStroke":case "CIMGradientStroke":case "CIMSolidFill":case "CIMPictureFill":case "CIMHatchFill":case "CIMGradientFill":case "CIMVectorMarker":case "CIMCharacterMarker":case "CIMPictureMarker":if(a.effects)for(const e of a.effects)f.findApplicableOverrides(e,b,c);a.markerPlacement&&f.findApplicableOverrides(a.markerPlacement,b,c);if("CIMVectorMarker"===a.type){if(a.markerGraphics)for(const e of a.markerGraphics)f.findApplicableOverrides(e, |
|
b,c),f.findApplicableOverrides(e.symbol,b,c)}else"CIMCharacterMarker"===a.type?f.findApplicableOverrides(a.symbol,b,c):"CIMHatchFill"===a.type?f.findApplicableOverrides(a.lineSymbol,b,c):"CIMPictureMarker"===a.type&&f.findApplicableOverrides(a.animatedSymbolProperties,b,c)}}}static findEffectOverrides(a,b){if(!a)return null;"CIMGeometricEffectDashes"===a.type&&m.normalizeDashTemplate(a);if(!b||!a.primitiveName)return{type:"cim-effect-param",effect:a,overrides:[]};const c=m.toLowerCaseProps(a);a=a.primitiveName; |
|
const e=[];for(const d of b)d.primitiveName===a&&e.push(m.toLowerCaseProps(d));return{type:"cim-effect-param",effect:c,overrides:m.normalizePrimitiveOverrideProps(e)}}static async resolveSymbolOverrides(a,b,c,e,d,g,h){if(!a?.symbol)return null;let {symbol:l,primitiveOverrides:k}=a;a=!!k;if(!a&&!e)return l;l=r.clone(l);k=r.clone(k);let n=!0;b||(b={attributes:{}},n=!1);a&&(n||(k=k.filter(p=>!p.valueExpressionInfo?.expression.includes("$feature"))),h||(k=k.filter(p=>!p.valueExpressionInfo?.expression.includes("$view"))), |
|
0<k.length&&(a=m.attributesToFields(b.attributes),await f.createRenderExpressions(k,{spatialReference:c,fields:a,geometryType:d}),f.evaluateOverrides(k,b,d??"esriGeometryPoint",g,h)),f.applyOverrides(l,k));e&&f.applyDictionaryTextOverrides(l,b,e,null);return l}static async createRenderExpressions(a,b){const c=[];for(const e of a){const d=e.valueExpressionInfo;d&&!f._expressionToRenderExpression.has(d.expression)&&(a=v.createRendererExpression(d.expression,b.spatialReference,b.fields),c.push(a),a.then(g=> |
|
f._expressionToRenderExpression.set(d.expression,g)))}0<c.length&&await Promise.all(c)}static evaluateOverrides(a,b,c,e,d){d={$view:{scale:d?.scale}};for(const g of a){if(g.value&&"object"===typeof g.value&&u.isRGB(g.value)&&("Color"===g.propertyName||"StrokeColor"===g.propertyName)){a:{a=g.value;if(!a){a=[0,0,0,0];break a}const {r:h,g:l,b:k,a:n}=a;a=[h,l,k,255*n]}g.value=a}if(a=g.valueExpressionInfo)if(a=f._expressionToRenderExpression.get(a.expression))g.value=w(a,b,d,c,e)}}static applyDictionaryTextOverrides(a, |
|
b,c,e,d="Normal"){if(a?.type)switch(a.type){case "CIMPointSymbol":case "CIMLineSymbol":case "CIMPolygonSymbol":case "CIMTextSymbol":var g=a.symbolLayers;if(!g)break;for(var h of g)h&&"CIMVectorMarker"===h.type&&f.applyDictionaryTextOverrides(h,b,c,e,"CIMTextSymbol"===a.type?a.textCase:d);break;case "CIMVectorMarker":a=a.markerGraphics;if(!a)break;for(g of a)g&&f.applyDictionaryTextOverrides(g,b,c,e);break;case "CIMMarkerGraphic":(h=a.textString)&&h.includes("[")&&(c=m.analyzeTextParts(h,c),a.textString= |
|
m.assignTextValuesFromFeature(b,c,e,d))}}static applyOverrides(a,b,c,e){if(a.primitiveName)for(const d of b)if(d.primitiveName===a.primitiveName){const g=m.uncapitalize(d.propertyName);e&&e.push({cim:a,nocapPropertyName:g,value:a[g]});if(c){let h=!1;for(const l of c)l.primitiveName===a.primitiveName&&(h=!0);h||c.push(d)}null!=d.value&&(a[g]=d.value)}switch(a.type){case "CIMPointSymbol":case "CIMLineSymbol":case "CIMPolygonSymbol":if(a.effects)for(const d of a.effects)f.applyOverrides(d,b,c,e);if(a.symbolLayers)for(const d of a.symbolLayers)f.applyOverrides(d, |
|
b,c,e);break;case "CIMSolidStroke":case "CIMSolidFill":case "CIMVectorMarker":if(a.effects)for(const d of a.effects)f.applyOverrides(d,b,c,e);if("CIMVectorMarker"===a.type&&a.markerGraphics)for(const d of a.markerGraphics)f.applyOverrides(d,b,c,e),f.applyOverrides(d.symbol,b,c,e)}}static restoreOverrides(a){for(const b of a)b.cim[b.nocapPropertyName]=b.value}static buildOverrideKey(a){let b="";for(const c of a)void 0!==c.value&&(b+=`${c.primitiveName}${c.propertyName}${JSON.stringify(c.value)}`); |
|
return b}static toValue(a,b){return"DashTemplate"===a?b.split(" ").map(c=>Number(c)):"Color"===a?(a=(new t(b)).toRgba(),a[3]*=255,a):b}}f._expressionToRenderExpression=new Map;q.OverrideHelper=f;Object.defineProperty(q,Symbol.toStringTag,{value:"Module"})}); |