// 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 ../../rasterRenderers ../../core/unitUtils ../../layers/support/Field ../FlowRenderer ./AuthoringInfo ./ClassBreakInfo ./colorRampUtils ./rasterRendererChecks ./UniqueValueInfo ../visualVariables/ColorVariable ../visualVariables/SizeVariable ../visualVariables/support/ColorStop ../../rest/support/ClassBreaksDefinition ../../rest/support/generateRendererUtils ../../rest/support/MultipartColorRamp ../../symbols/SimpleFillSymbol ../RasterStretchRenderer ../UniqueValueRenderer ../RasterColormapRenderer ../RasterShadedReliefRenderer ../ClassBreaksRenderer ../VectorFieldRenderer".split(" "), function(k,x,ra,Z,aa,ba,K,ca,E,r,L,da,ea,M,fa,ha,N,F,ia,ja,ka,la,ma,na){function G(a,b){a=H(a,b?.variableName);const {bandCount:c}=a;let {bandIds:d,stretchType:e}=b||{};d?.some(p=>p>=c)&&(d=null);let f=a.statistics,g=a.histograms;1f[p]),g=null==g?null:d?.map(p=>g[p])):d=[0];null==e&&(e=oa(a));let q=!1;switch(e){case "none":q=!1;break;case "percent-clip":q=!g?.length;break;default:q=!f?.length}var {dataType:l}=a;l=1===d?.length&&P.has(l)?Q:null;l=new ia({stretchType:e, dynamicRangeAdjustment:q,colorRamp:l,outputMin:0,outputMax:255,gamma:1===d?.length?[1]:[1,1,1],useGamma:!1});"percent-clip"===e?l.maxPercent=l.minPercent=.25:"standard-deviation"===e&&(l.numberOfStandardDeviations=2);if(!q&&(null!=a.multidimensionalInfo||b?.includeStatisticsInStretch))if("percent-clip"===e)l.histograms=g;else if("min-max"===e||"standard-deviation"===e)l.statistics=f;return l}function H(a,b){var {multidimensionalInfo:c}=a;if(!b||!c)return a;c=c.variables.find(d=>d.name===b);if(!c)return a; a=a.clone();if(c){const {statistics:d,histograms:e}=c;d?.length&&(a.statistics=d.map(f=>({min:f.min,max:f.max,avg:f.avg,stddev:f.stddev})));e?.length&&(a.histograms=e)}return a}function O(a){const b=a.bandCount;if(1===b)return null;if(2===b)return[0];({bandInfos:a}=a);let c;if(a.length===b){const {red:d,green:e,blue:f,nir:g}=R(a);null!=d&&null!=e&&null!=f?c=[d,e,f]:null!=g&&null!=d&&null!=e&&(c=[g,d,e])}!c&&3<=b&&(c=[0,1,2]);return c}function R(a){const b={};for(let e=0;e=d&&480<=c&&540>=c?b.blue=e:null==b.green&&490<=d&&560>=d&&560<=c&&610>=c?b.green=e:null==b.red&&595<=d&&670>=d&&660<=c&&730>=c?b.red=e:null==b.nir&&700<=d&&860>=d&&800<=c&&950>=c&&(b.nir=e))}return b}function oa(a){let b="percent-clip";const {pixelType:c,dataType:d, histograms:e,statistics:f,multidimensionalInfo:g}=a;a=P.has(d)||"generic"===d&&null!=g;"u8"!==c||"processed"!==d&&null!=e&&null!=f?"u8"===c||"elevation"===d||a?b="min-max":null!=e?b="percent-clip":null!=f&&(b="min-max"):b="none";return b}function S(a,b,c,d){if(!r.isUVRendererSupported(a,b))return null;const {attributeTable:e,statistics:f}=a,g=I(e,b),q=A(e,"red"),l=A(e,"green"),p=A(e,"blue");a=new K;const t=[],w=new Set,v=!!(q&&l&&p);if(null!=e)e.features.forEach(m=>{var n=m.attributes[g.name];w.has(m.attributes[g.name])|| null==n||(w.add(n),n=!v||"single"!==q.type&&"double"!==q.type||"single"!==l.type&&"double"!==l.type||"single"!==p.type&&"double"!==p.type||e.features.some(h=>1m.value&&"string"===typeof m.value.valueOf()?0:m.value>n.value?1:-1);if(!v){const m=E.convertColorRampToColormap(T,{numColors:t.length});t.forEach((n,h)=>n.symbol.color=new x(m[h].slice(1,4)));a.colorRamp=T}if(c||d){const m=c||E.convertColorRampToColormap(d,{numColors:t.length}).map(n=>n.slice(1));t.forEach((n,h)=>n.symbol.color=new x(m[h]));a.colorRamp=d}return new ja({field:g.name,uniqueValueInfos:t, authoringInfo:a})}function I(a,b,c){let d;null!=a?(d=b?a.fields.find(e=>b.toLowerCase()===e.name.toLowerCase()):pa(a.fields),d||(c||(d=a.fields.find(e=>"string"===e.type)),d||=A(a,"value"))):d=new aa({name:"value"});return d}function pa(a){let b;for(let c=0;cc.name.toLowerCase()=== b)}function U(a){if(!r.isColormapRendererSupported(a))return null;let b;const {attributeTable:c,colormap:d}=a;if(null!=c){const e=A(c,"value"),f=I(c,null,!0);"string"===f.type&&(b={},c.features.forEach(g=>{g=g.attributes;b[g[e.name]]=f?g[f.name]:g[e.name]}))}return ka.createFromColormap(d,b)}function V(a,b,c){let d=0,e=0;null!=a.attributeTable?(a=a.attributeTable,d=e=a.features[0].attributes[b.name],a.features.forEach(f=>{f=f.attributes[b.name];fe&&(e=f)})):null!=a.histograms&&(a=a.histograms, d=a[0].min,e=a[0].max);return(e-d)/c}function W(a){if(!r.isVectorFieldRendererSupported(a))return null;if(null!=a.statistics&&a.statistics.length&&("vector-magdir"===a.dataType||"vector-uv"===a.dataType)){const {minMagnitude:c,maxMagnitude:d}=J(a.dataType,a.statistics);var b=[new ea({field:"Magnitude",minSize:10,maxSize:40,minDataValue:c,maxDataValue:d})]}a=null!=a.multidimensionalInfo?qa.get(a.multidimensionalInfo.variables[0].unit):void 0;b=new na({visualVariables:b,inputUnit:a,rotationType:"geographic"}); b.visualVariables=[...b.sizeVariables,...b.rotationVariables];return b}function X(a){return{color:a.symbolLayers[0].material?.color,type:"esriSFS",style:"esriSFSSolid"}}function J(a,b){if("vector-magdir"===a)a=b[0].min,b=b[0].max;else{const c=b[0].min,d=b[0].max,e=b[1].min;b=b[1].max;a=0;b=Math.max(Math.abs(c),Math.abs(e),Math.abs(d),Math.abs(b))}return{minMagnitude:a,maxMagnitude:b}}const Q=N.fromJSON({type:"multipart",colorRamps:[{fromColor:[0,0,255],toColor:[0,255,255]},{fromColor:[0,255,255], toColor:[255,255,0]},{fromColor:[255,255,0],toColor:[255,0,0]}]}),T=N.fromJSON(E.predefinedJsonColorRamps[0]),P=new Set("scientific standard-time vector-uv vector-magdir vector-u vector-v vector-magnitude vector-direction".split(" ")),qa=new Map([["m/s","meter-per-second"],["km/h","kilometer-per-hour"],["knots","knots"],["ft/s","feet-per-second"],["mph","mile-per-hour"]]);k.createClassBreaksRenderer=function(a,b){a=H(a,b?.variableName);const {attributeTable:c}=a;if(!r.isClassBreaksSupported(a))return null; const d=null!=a.histograms?a.histograms[0]:null,e=null!=b?.numClasses&&isFinite(b?.numClasses)?b.numClasses:5,f=new K({classificationMethod:b?.classificationMethod,colorRamp:b?.colorRamp});let g=b?.field||"value";const q=[],l=[],p=null!=c,t=p&&c.fields.find(h=>"count"===h.name.toLowerCase()),w=p?c.fields.find(h=>h.name.toLowerCase()===g.toLowerCase()):void 0;if(w&&p){g=w.name;const h=c.features.length;let B=0;c.features.forEach(u=>B+=(t?u.attributes[t.name]:50)/h);c.features.forEach(u=>{const C=u.attributes[w.name]; u=t?u.attributes[t.name]:50;if(0D+=y/C);d.counts.forEach((y,z)=>{if(0h.slice(1)));b=a.classBreaks.map((h,B)=>new ca({minValue:h.minValue,maxValue:h.maxValue, label:h.label,symbol:new F({color:n[B]})}));return new ma({field:g,classBreakInfos:b,authoringInfo:f})};k.createColormapRenderer=U;k.createDefaultRenderer=function(a,b){const {attributeTable:c,colormap:d}=a;if(r.isVectorFieldRendererSupported(a)){var e=W(a);if(null!=e)return e}return b?.rasterFunctionColorRamp?(a=G(a,b),a.colorRamp=b.rasterFunctionColorRamp,a):null!=d&&(e=U(a),null!=e)||null!=c&&(e=S(a),null!=e)?e:G(a,b)};k.createFlowRenderer=function(a){if(!r.isFlowRendererSupported(a))return null; let b;if(null!=a.statistics&&0d);return b?.length?b.map(d=>c[d]):c};k.getClassField=I;k.getDefaultBandCombination=O;k.getDefaultInterpolation=function(a,b,c){const d=c?.toLowerCase().replace("bicubic","cubic");c=["nearest","bilinear","cubic","majority"].find(e=>e===d);return"Map"===b?c??"bilinear": "standard-time"===a.dataType?c??"nearest":"thematic"===a.dataType||a.attributeTable||a.colormap?"nearest"===c||"majority"===c?c:"nearest":c??"bilinear"};k.getDefinedInterval=V;k.getField=A;k.getFunctionColorramp=function(a){return"Function"===a.datasetFormat&&"Colormap"===a.rasterFunction.functionName?a.rasterFunction.colorRamp:void 0};k.getSupportedRendererTypes=function(a,b=!1){const c=["raster-stretch"];r.isColormapRendererSupported(a,b)&&c.push("raster-colormap");r.isUVRendererSupported(a)&&c.push("unique-value"); r.isClassBreaksSupported(a,b)&&c.push("class-breaks");r.isShadedReliefRendererSupported(a)&&c.push("raster-shaded-relief");r.isVectorFieldRendererSupported(a)&&c.push("vector-field");r.isFlowRendererSupported(a)&&c.push("flow");return c};k.getVariableRasterInfo=H;k.getWellKnownBandIndexes=R;k.normalizeRendererJSON=function(a){if("uniqueValue"===a.type){var b=a.uniqueValueInfos;b?.[0].symbol?.symbolLayers?.length&&(a.uniqueValueInfos=b?.map(c=>({value:c.value,label:c.label,symbol:c.symbol?X(c.symbol): null})));return a}"classBreaks"===a.type&&(b=a.classBreakInfos,b[0].symbol?.symbolLayers?.length&&(a.classBreakInfos=b.map(c=>({classMinValue:c.classMinValue,classMaxValue:c.classMaxValue,label:c.label,symbol:c.symbol?X(c.symbol):null}))));return a};Object.defineProperty(k,Symbol.toStringTag,{value:"Module"})});