// All material copyright ESRI, All Rights Reserved, unless otherwise specified. // See https://js.arcgis.com/4.7/esri/copyright.txt for details. //>>built define("../core/declare ../core/lang ../core/kebabDictionary ../core/Error ../core/Logger ../core/accessorSupport/ensureType dojo/_base/lang ../support/arcadeUtils ../symbols/Symbol ../symbols/PolygonSymbol3D ../symbols/support/jsonUtils ../symbols/support/typeUtils ./Renderer ./support/LegendOptions ./support/ClassBreakInfo".split(" "),function(q,k,r,t,u,m,v,g,w,x,e,h,y,l,f){var z=u.getLogger("esri.renderers.ClassBreaksRenderer");l=l.LegendOptions;f=f.ClassBreakInfo;var n=r({esriNormalizeByLog:"log", esriNormalizeByPercentOfTotal:"percent-of-total",esriNormalizeByField:"field"}),A=m.ensureType(f),p=q(y,{declaredClass:"esri.renderers.ClassBreaksRenderer",properties:{backgroundFillSymbol:{types:{base:w,key:"type",typeMap:{"simple-fill":h.types.typeMap["simple-fill"],"picture-fill":h.types.typeMap["picture-fill"],"polygon-3d":h.types.typeMap["polygon-3d"]}},value:null,json:{origins:{"web-scene":{read:e.read,write:{target:{backgroundFillSymbol:{type:x}},writer:e.writeTarget}}},read:e.read,write:e.writeTarget}}, classBreakInfos:{type:[f],json:{read:function(a,b,d){if(Array.isArray(a)){var c=b.minValue;return a.map(function(a){var b=new f;b.read(a,d);null==b.minValue&&(b.minValue=c);null==b.maxValue&&(b.maxValue=b.minValue);c=b.maxValue;return b})}},write:function(a,b,d,c){a=a.map(function(a){return a.write({},c)});this._areClassBreaksConsecutive()&&a.forEach(function(a){delete a.classMinValue});b[d]=a}}},minValue:{type:Number,readOnly:!0,dependsOn:["classBreakInfos"],get:function(){return this.classBreakInfos[0]&& this.classBreakInfos[0].minValue||0},json:{read:!1,write:{overridePolicy:function(){return 0!==this.classBreakInfos.length&&this._areClassBreaksConsecutive()?{enabled:!0}:{enabled:!1}}}}},defaultLabel:{type:String,value:null,json:{write:!0}},defaultSymbol:{types:h.rendererTypes,value:null,json:{origins:{"web-scene":{read:e.read,write:{target:{defaultSymbol:{types:h.rendererTypes3D}},writer:e.writeTarget}}},read:e.read,write:e.writeTarget}},valueExpression:{type:String,value:null,json:{write:!0}}, valueExpressionTitle:{type:String,value:null,json:{write:!0}},compiledFunc:{dependsOn:["valueExpression"],get:function(){return g.createFunction(this.valueExpression)}},legendOptions:{type:l,value:null,json:{write:!0}},field:{value:null,cast:function(a){return null==a?a:"function"===typeof a?a:m.ensureString(a)},json:{type:String,write:function(a,b,d,c){"string"===typeof a?b[d]=a:c&&c.messages?c.messages.push(new t("property:unsupported","ClassBreaksRenderer.field set to a function cannot be written to JSON")): z.error(".field: cannot write field to JSON since it's not a string value")}}},isMaxInclusive:!0,normalizationField:{type:String,value:null,json:{write:!0}},normalizationTotal:{type:Number,value:null,json:{write:!0}},normalizationType:{type:String,value:null,dependsOn:["normalizationField","normalizationTotal"],get:function(){var a=this._get("normalizationType"),b=!!this.normalizationField,d=null!=this.normalizationTotal;if(b||d)a=b&&"field"||d&&"percent-of-total",b&&d&&console.warn("warning: both normalizationField and normalizationTotal are set!"); else if("field"===a||"percent-of-total"===a)a=null;return a},json:{read:n.fromJSON,write:function(a,b){if(a=n.toJSON(a))b.normalizationType=a}}},requiredFields:{dependsOn:["field","normalizationField","valueExpression"]},type:{value:"class-breaks",json:{write:function(a,b){b.type="classBreaks"}}}},constructor:function(){this.classBreakInfos=[]},addClassBreakInfo:function(a,b,d){a="number"===typeof a?new f({minValue:a,maxValue:b,symbol:d}):A(k.clone(a));this.classBreakInfos.push(a);1===this.classBreakInfos.length&& this.notifyChange("minValue")},removeClassBreakInfo:function(a,b){var d,c,e=this.classBreakInfos.length;for(c=0;c