// 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 ../../../chunks/tslib.es6 ../../../chunks/Tick ../../../chunks/Theme ../../../chunks/ColorSet ../../../chunks/DefaultTheme".split(" "),function(Z,R,A,f,ia,ja){function fa(a){return 1<=a?S:-1>=a?-S:Math.asin(a)}function ka(a){return a.innerRadius}function la(a){return a.outerRadius}function ma(a){return a.startAngle}function na(a){return a.endAngle}function oa(a){return a&&a.padAngle}function T(a,b,c,e,d,g,h){var t=a-c,k=b-e;h=(h?g:-g)/K(t*t+k*k);k*=h;t*=-h;var n=a+k,l=b+t,p=c+k,q=
e+t;c=(n+p)/2;e=(l+q)/2;b=p-n;a=q-l;h=b*b+a*a;g=d-g;q=n*q-p*l;var u=(0>a?-1:1)*K(pa(0,g*g*h-q*q));n=(q*a-b*u)/h;l=(-q*b-a*u)/h;p=(q*a+b*u)/h;b=(-q*b+a*u)/h;a=n-c;h=l-e;c=p-c;e=b-e;a*a+h*h>c*c+e*e&&(n=p,l=b);return{cx:n,cy:l,x01:-k,y01:-t,x11:n*(d/g-1),y11:l*(d/g-1)}}function qa(){function a(){var l,p=+b.apply(this,arguments),q=+c.apply(this,arguments),u=g.apply(this,arguments)-S,x=h.apply(this,arguments)-S,B=ha(x-u),y=x>u;k||=l=n();if(q
ra-1E-12)k.moveTo(q*I(u),
q*D(u)),k.arc(0,0,q,u,x,!y),1E-12
F*F?v=void 0:(F=(B*(x-N)-E*(u-M))/F,v=[u+F*v,x+F*w]);v?(w=u-v[0],B=x-v[1],E=M-v[0],F=N-v[1],w=(w*E+B*F)/(K(w*w+B*B)*K(E*E+F*F)),w=1/D((1w?O:Math.acos(w))/2),B=K(v[0]*v[0]+v[1]*v[1]),v=ca(J,(p-B)/(w-1)),w=ca(J,(q-B)/(w+1))):v=w=0}}1E-12d||270g&&(g=d+g);a instanceof f.Percent&&(c=this.ix*(g+(d-g)*a.value));b instanceof f.Percent&&(e=this.iy*(g+(d-g)*b.value));360<=this.get("arc")&&0==g&&(e=c=0);return{x:c,y:e}}_beforeChanged(){super._beforeChanged();if(this.isDirty("radius")||this.isDirty("arc")||this.isDirty("innerRadius")||this.isDirty("startAngle")||this.isDirty("dRadius")||
this.isDirty("dInnerRadius")||this.isDirty("cornerRadius")||this.isDirty("shiftRadius"))this._clear=!0}_changed(){super._changed();if(this._clear){var a=this.get("startAngle",0);let b=this.get("arc",0);const c=this._generator;0>b&&(a+=b,b*=-1);.1d&&(d=e+d);c({innerRadius:d,outerRadius:e,startAngle:(a+90)*f.RADIANS,
endAngle:(a+b+90)*f.RADIANS});a+=b/2;this.ix=f.cos(a);this.iy=f.sin(a);a=this.get("shiftRadius",0);this.setRaw("dx",this.ix*a);this.setRaw("dy",this.iy*a);this.markDirtyPosition()}}}Object.defineProperty(W,"className",{enumerable:!0,configurable:!0,writable:!0,value:"Slice"});Object.defineProperty(W,"classNames",{enumerable:!0,configurable:!0,writable:!0,value:f.Graphics.classNames.concat([W.className])});class sa extends f.Theme{setupDefaultRules(){super.setupDefaultRules();const a=this._root.interfaceColors;
var b=this.rule.bind(this);b("PercentSeries").setAll({legendLabelText:"{category}",legendValueText:"{valuePercentTotal.formatNumber('0.00p')}",colors:ia.ColorSet.new(this._root,{}),width:f.p100,height:f.p100});b("PieChart").setAll({radius:f.percent(80),startAngle:-90,endAngle:270});b("PieSeries").setAll({alignLabels:!0,startAngle:-90,endAngle:270});b("PieSeries").states.create("hidden",{endAngle:-90,opacity:0});b("Slice",["pie"]).setAll({position:"absolute",isMeasured:!1,x:0,y:0,toggleKey:"active",
tooltipText:"{category}: {valuePercentTotal.formatNumber('0.00p')}",strokeWidth:1,strokeOpacity:1,role:"figure",lineJoin:"round"});b("Slice",["pie"]).states.create("active",{shiftRadius:20,scale:1});b("Slice",["pie"]).states.create("hoverActive",{scale:1.04});b("Slice",["pie"]).states.create("hover",{scale:1.04});b("RadialLabel",["pie"]).setAll({textType:"aligned",radius:10,text:"{category}: {valuePercentTotal.formatNumber('0.00p')}",paddingTop:5,paddingBottom:5,populateText:!0});b("Tick",["pie"]).setAll({location:1});
b("SlicedChart").setAll({paddingLeft:10,paddingRight:10,paddingTop:10,paddingBottom:10});b("FunnelSeries").setAll({startLocation:0,endLocation:1,orientation:"vertical",alignLabels:!0,sequencedInterpolation:!0});b("FunnelSlice").setAll({interactive:!0,expandDistance:0});b("FunnelSlice").states.create("hover",{expandDistance:.15});b("Label",["funnel"]).setAll({populateText:!0,text:"{category}: {valuePercentTotal.formatNumber('0.00p')}",centerY:f.p50});b("Label",["funnel","horizontal"]).setAll({centerX:0,
centerY:f.p50,rotation:-90});b("Label",["funnel","vertical"]).setAll({centerY:f.p50,centerX:0});b("Tick",["funnel"]).setAll({location:1});b("FunnelSlice",["funnel","link"]).setAll({fillOpacity:.5,strokeOpacity:0,expandDistance:-.1});b("FunnelSlice",["funnel","link","vertical"]).setAll({height:10});b("FunnelSlice",["funnel","link","horizontal"]).setAll({width:10});b("PyramidSeries").setAll({valueIs:"area"});b("FunnelSlice",["pyramid","link"]).setAll({fillOpacity:.5});b("FunnelSlice",["pyramid","link",
"vertical"]).setAll({height:0});b("FunnelSlice",["pyramid","link","horizontal"]).setAll({width:0});b("FunnelSlice",["pyramid"]).setAll({interactive:!0,expandDistance:0});b("FunnelSlice",["pyramid"]).states.create("hover",{expandDistance:.15});b("Label",["pyramid"]).setAll({populateText:!0,text:"{category}: {valuePercentTotal.formatNumber('0.00p')}",centerY:f.p50});b("Label",["pyramid","horizontal"]).setAll({centerX:0,centerY:f.p50,rotation:-90});b("Label",["pyramid","vertical"]).setAll({centerY:f.p50,
centerX:0});b("Tick",["pyramid"]).setAll({location:1});b("FunnelSlice",["pictorial"]).setAll({interactive:!0,tooltipText:"{category}: {valuePercentTotal.formatNumber('0.00p')}"});b("Label",["pictorial"]).setAll({populateText:!0,text:"{category}: {valuePercentTotal.formatNumber('0.00p')}",centerY:f.p50});b("Label",["pictorial","horizontal"]).setAll({centerX:0,centerY:f.p50,rotation:-90});b("Label",["pictorial","vertical"]).setAll({centerY:f.p50,centerX:0});b("FunnelSlice",["pictorial","link"]).setAll({fillOpacity:.5,
width:0,height:0});b("Tick",["pictorial"]).setAll({location:.5});b=b("Graphics",["pictorial","background"]);b.setAll({fillOpacity:.2});ja.setColor(b,"fill",a,"alternativeBackground")}}class P extends A.SerialChart{_afterNew(){this._defaultThemes.push(sa.new(this._root));super._afterNew();this.chartContainer.children.push(this.seriesContainer);this.seriesContainer.children.push(this.bulletsContainer)}_processSeries(a){super._processSeries(a);this.seriesContainer.children.moveValue(this.bulletsContainer,
this.seriesContainer.children.length-1)}}Object.defineProperty(P,"className",{enumerable:!0,configurable:!0,writable:!0,value:"PercentChart"});Object.defineProperty(P,"classNames",{enumerable:!0,configurable:!0,writable:!0,value:A.SerialChart.classNames.concat([P.className])});class Q extends A.Series{constructor(){super(...arguments);Object.defineProperty(this,"slicesContainer",{enumerable:!0,configurable:!0,writable:!0,value:this.children.push(f.Container.new(this._root,{position:"absolute",isMeasured:!1}))});
Object.defineProperty(this,"labelsContainer",{enumerable:!0,configurable:!0,writable:!0,value:this.children.push(f.Container.new(this._root,{position:"absolute",isMeasured:!1}))});Object.defineProperty(this,"ticksContainer",{enumerable:!0,configurable:!0,writable:!0,value:this.children.push(f.Container.new(this._root,{position:"absolute",isMeasured:!1}))});Object.defineProperty(this,"_lLabels",{enumerable:!0,configurable:!0,writable:!0,value:[]});Object.defineProperty(this,"_rLabels",{enumerable:!0,
configurable:!0,writable:!0,value:[]});Object.defineProperty(this,"_hLabels",{enumerable:!0,configurable:!0,writable:!0,value:[]});Object.defineProperty(this,"slices",{enumerable:!0,configurable:!0,writable:!0,value:this._makeSlices()});Object.defineProperty(this,"labels",{enumerable:!0,configurable:!0,writable:!0,value:this._makeLabels()});Object.defineProperty(this,"ticks",{enumerable:!0,configurable:!0,writable:!0,value:this._makeTicks()})}makeSlice(a){const b=this.slicesContainer.children.push(this.slices.make());
b.on("fill",()=>{this.updateLegendMarker(a)});b.on("stroke",()=>{this.updateLegendMarker(a)});b._setDataItem(a);a.set("slice",b);this.slices.push(b);return b}makeLabel(a){const b=this.labelsContainer.children.push(this.labels.make());b._setDataItem(a);a.set("label",b);this.labels.push(b);return b}_shouldMakeBullet(a){return null!=a.get("value")?!0:!1}makeTick(a){const b=this.ticksContainer.children.push(this.ticks.make());b._setDataItem(a);a.set("tick",b);this.ticks.push(b);return b}_afterNew(){this.fields.push("category",
"fill");super._afterNew()}_onDataClear(){const a=this.get("colors");a&&a.reset()}_prepareChildren(){super._prepareChildren();this._lLabels=[];this._rLabels=[];this._hLabels=[];if(this._valuesDirty){let a=0,b=0,c=0,e=Infinity,d=0;f.each(this._dataItems,g=>{g=g.get("valueWorking",0);a+=g;b+=Math.abs(g)});f.each(this._dataItems,g=>{var h=g.get("valueWorking",0);h>c&&(c=h);hsuper.show}});return R.__awaiter(this,void 0,void 0,function*(){let c=[];c.push(b.show.call(this,a));c.push(this._sequencedShowHide(!0,a));yield Promise.all(c)})}hide(a){const b=Object.create(null,{hide:{get:()=>super.hide}});return R.__awaiter(this,void 0,void 0,function*(){let c=[];c.push(b.hide.call(this,a));c.push(this._sequencedShowHide(!1,
a));yield Promise.all(c)})}_updateChildren(){super._updateChildren();this._valuesDirty&&f.each(this._dataItems,a=>{a.get("label").text.markDirtyText()});(this.isDirty("legendLabelText")||this.isDirty("legendValueText"))&&f.each(this._dataItems,a=>{this.updateLegendValue(a)});this._arrange()}_arrange(){this._arrangeDown(this._lLabels);this._arrangeUp(this._lLabels);this._arrangeDown(this._rLabels);this._arrangeUp(this._rLabels);this._arrangeLeft(this._hLabels);this._arrangeRight(this._hLabels);f.each(this.dataItems,
a=>{this._updateTick(a)})}_afterChanged(){super._afterChanged();this._arrange()}processDataItem(a){super.processDataItem(a);if(null==a.get("fill")){let b=this.get("colors");b&&a.setRaw("fill",b.next())}}showDataItem(a,b){const c=Object.create(null,{showDataItem:{get:()=>super.showDataItem}});return R.__awaiter(this,void 0,void 0,function*(){const e=[c.showDataItem.call(this,a,b)];f.isNumber(b)||(b=this.get("stateAnimationDuration",0));var d=this.get("stateAnimationEasing");let g=a.get("value");(d=
a.animate({key:"valueWorking",to:g,duration:b,easing:d}))&&e.push(d.waitForStop());(d=a.get("tick"))&&e.push(d.show(b));(d=a.get("label"))&&e.push(d.show(b));(d=a.get("slice"))&&e.push(d.show(b));d.get("active")&&d.states.applyAnimate("active");yield Promise.all(e)})}hideDataItem(a,b){const c=Object.create(null,{hideDataItem:{get:()=>super.hideDataItem}});return R.__awaiter(this,void 0,void 0,function*(){const e=[c.hideDataItem.call(this,a,b)];var d=this.states.create("hidden",{});f.isNumber(b)||
(b=d.get("stateAnimationDuration",this.get("stateAnimationDuration",0)));d=d.get("stateAnimationEasing",this.get("stateAnimationEasing"));(d=a.animate({key:"valueWorking",to:0,duration:b,easing:d}))&&e.push(d.waitForStop());(d=a.get("tick"))&&e.push(d.hide(b));(d=a.get("label"))&&e.push(d.hide(b));d=a.get("slice");d.hideTooltip();d&&e.push(d.hide(b));yield Promise.all(e)})}disposeDataItem(a){super.disposeDataItem(a);var b=a.get("label");b&&(this.labels.removeValue(b),b.dispose());if(b=a.get("tick"))this.ticks.removeValue(b),
b.dispose();if(a=a.get("slice"))this.slices.removeValue(a),a.dispose()}hoverDataItem(a){(a=a.get("slice"))&&!a.isHidden()&&a.hover()}unhoverDataItem(a){(a=a.get("slice"))&&a.unhover()}updateLegendMarker(a){if(a){const b=a.get("slice");if(b&&(a=a.get("legendDataItem"))){const c=a.get("markerRectangle");f.each(f.visualSettings,e=>{null!=b.get(e)&&c.set(e,b.get(e))})}}}_arrangeDown(a){if(a){let b=this._getNextDown();a.sort((c,e)=>c.y>e.y?1:c.y{const e=c.label.adjustedLocalBounds();
let d=e.top;c.y+dc.ye.y?-1:0);f.each(a,c=>{const e=c.label.adjustedLocalBounds();let d=e.bottom;c.y+d>b&&(c.y=b-d);c.label.set("y",c.y);b=c.y+e.top})}}_arrangeRight(a){if(a){let b=0;a.sort((c,e)=>c.y>e.y?1:c.y{const e=c.label.adjustedLocalBounds();let d=e.left;c.y+dc.ye.y?-1:0);f.each(a,c=>{const e=c.label.adjustedLocalBounds();let d=e.right;c.y+d>b&&(c.y=b-d);c.label.set("x",c.y);b=c.y+e.left})}}_updateSize(){super._updateSize();this.markDirty()}_updateTick(a){}_dispose(){super._dispose();const a=this.chart;a&&a.series.removeValue(this)}}Object.defineProperty(Q,"className",{enumerable:!0,configurable:!0,writable:!0,value:"PercentSeries"});
Object.defineProperty(Q,"classNames",{enumerable:!0,configurable:!0,writable:!0,value:A.Series.classNames.concat([Q.className])});class X extends P{constructor(){super(...arguments);Object.defineProperty(this,"_maxRadius",{enumerable:!0,configurable:!0,writable:!0,value:1})}_afterNew(){super._afterNew();this.seriesContainer.setAll({x:f.p50,y:f.p50})}_prepareChildren(){super._prepareChildren();var a=this.chartContainer,b=a.innerWidth();const c=a.innerHeight(),e=this.get("startAngle",0),d=this.get("endAngle",
0),g=this.get("innerRadius");a=f.getArcBounds(0,0,e,d,1);var h=b/(a.right-a.left);const t=c/(a.bottom-a.top);var k={left:0,right:0,top:0,bottom:0};if(g instanceof f.Percent){let n=g.value;k=Math.min(h,t);n=Math.max(k*n,k-Math.min(c,b))/k;k=f.getArcBounds(0,0,e,d,n);this.setPrivateRaw("irModifyer",n/g.value)}a=f.mergeBounds([a,k]);b=this._maxRadius;this._maxRadius=Math.min(h,t);h=f.relativeToValue(this.get("radius",0),this._maxRadius);this.seriesContainer.setAll({dy:-h*(a.bottom+a.top)/2,dx:-h*(a.right+
a.left)/2});(this.isDirty("startAngle")||this.isDirty("endAngle")||b!=this._maxRadius)&&this.series.each(n=>{n._markDirtyKey("startAngle")});(this.isDirty("innerRadius")||this.isDirty("radius"))&&this.series.each(n=>{n._markDirtyKey("innerRadius")})}radius(a){let b=f.relativeToValue(this.get("radius",0),this._maxRadius),c=f.relativeToValue(this.get("innerRadius",0),b);if(a){let e=this.series.indexOf(a),d=this.series.length;a=a.get("radius");return null!=a?c+f.relativeToValue(a,b-c):c+(b-c)/d*(e+1)}return b}innerRadius(a){const b=
this.radius();let c=f.relativeToValue(this.get("innerRadius",0),b);0>c&&(c=b+c);if(a){let e=this.series.indexOf(a),d=this.series.length;a=a.get("innerRadius");return null!=a?c+f.relativeToValue(a,b-c):c+(b-c)/d*e}return c}_updateSize(){super._updateSize();this.markDirtyKey("radius")}}Object.defineProperty(X,"className",{enumerable:!0,configurable:!0,writable:!0,value:"PieChart"});Object.defineProperty(X,"classNames",{enumerable:!0,configurable:!0,writable:!0,value:P.classNames.concat([X.className])});
class Y extends Q{_makeSlices(){return new f.ListTemplate(f.Template.new({}),()=>W._new(this._root,{themeTags:f.mergeTags(this.slices.template.get("themeTags",[]),["pie","series"])},[this.slices.template]))}_makeLabels(){return new f.ListTemplate(f.Template.new({}),()=>V._new(this._root,{themeTags:f.mergeTags(this.labels.template.get("themeTags",[]),["pie","series"])},[this.labels.template]))}_makeTicks(){return new f.ListTemplate(f.Template.new({}),()=>A.Tick._new(this._root,{themeTags:f.mergeTags(this.ticks.template.get("themeTags",
[]),["pie","series"])},[this.ticks.template]))}processDataItem(a){super.processDataItem(a);const b=this.makeSlice(a);b.on("scale",()=>{this._updateTick(a)});b.on("shiftRadius",()=>{this._updateTick(a)});b.events.on("positionchanged",()=>{this._updateTick(a)});const c=this.makeLabel(a);c.events.on("positionchanged",()=>{this._updateTick(a)});this.makeTick(a);b.events.on("positionchanged",()=>{c.markDirty()})}_getNextUp(){const a=this.chart;return a?a._maxRadius:this.labelsContainer.maxHeight()/2}_getNextDown(){const a=
this.chart;return a?-a._maxRadius:-this.labelsContainer.maxHeight()/2}_prepareChildren(){super._prepareChildren();const a=this.chart;if(a){if(this.isDirty("alignLabels")){var b=this.labels.template;if(this.get("alignLabels"))b.set("textType","aligned");else{let c=b.get("textType");null!=c&&"aligned"!=c||b.set("textType","adjusted")}}if(this._valuesDirty||this.isDirty("radius")||this.isDirty("innerRadius")||this.isDirty("startAngle")||this.isDirty("endAngle")||this.isDirty("alignLabels")){this.markDirtyBounds();
b=this.get("startAngle",a.get("startAngle",-90));const c=this.get("endAngle",a.get("endAngle",270))-b;let e=b;const d=a.radius(this);this.setPrivateRaw("radius",d);let g=a.innerRadius(this)*a.getPrivate("irModifyer",1);0>g&&(g=d+g);f.each(this._dataItems,h=>{this.updateLegendValue(h);let t=c*h.get("valuePercentTotal")/100;var k=h.get("slice");if(k){k.set("radius",d);k.set("innerRadius",g);k.set("startAngle",e);k.set("arc",t);var n=h.get("fill");k._setDefault("fill",n);k._setDefault("stroke",n)}k=
f.normalizeAngle(e+t/2);if(n=h.get("label"))if(n.setPrivate("radius",d),n.setPrivate("innerRadius",g),n.set("labelAngle",k),"aligned"==n.get("textType")){let l=d+n.get("radius",0),p=d*f.sin(k);90=k?(n.isHidden()||n.isHiding()||this._lLabels.push({label:n,y:p}),l=-1*l-this.labelsContainer.get("paddingLeft",0),n.set("centerX",f.p100),n.setPrivateRaw("left",!0)):(n.isHidden()||n.isHiding()||this._rLabels.push({label:n,y:p}),l+=this.labelsContainer.get("paddingRight",0),n.set("centerX",0),n.setPrivateRaw("left",
!1));n.set("x",l);n.set("y",d*f.sin(k))}e+=t;this._updateTick(h)})}}}_updateTick(a){const b=a.get("tick"),c=a.get("label");a=a.get("slice");var e=b.get("location",1);if(b&&c&&a){e*=(a.get("shiftRadius",0)+a.get("radius",0))*a.get("scale",1);var d=c.get("labelAngle",0);const n=f.cos(d);d=f.sin(d);var g=this.labelsContainer;const l=g.get("paddingLeft",0);var h=g.get("paddingRight",0),t=g=0;g=c.x();t=c.y();var k=[];0!=g&&0!=t&&("circular"==c.get("textType")&&(t=c.radius()-c.get("paddingBottom",0),k=
c.get("labelAngle",0),g=t*f.cos(k),t*=f.sin(k)),h=-h,c.getPrivate("left")&&(h=l),k=[{x:a.x()+e*n,y:a.y()+e*d},{x:g+h,y:t},{x:g,y:t}]);b.set("points",k)}}_positionBullet(a){const b=a.get("sprite");if(b){var c=b.dataItem.get("slice");if(c){var e=c.get("innerRadius",0);const g=c.get("radius",0);var d=c.get("startAngle",0);c=c.get("arc",0);const h=a.get("locationX",.5);a=a.get("locationY",.5);d+=c*h;e+=(g-e)*a;b.setAll({x:f.cos(d)*e,y:f.sin(d)*e})}}}}Object.defineProperty(Y,"className",{enumerable:!0,
configurable:!0,writable:!0,value:"PieSeries"});Object.defineProperty(Y,"classNames",{enumerable:!0,configurable:!0,writable:!0,value:Q.classNames.concat([Y.className])});Z.PieChartAm5=X;Z.PieSeriesAm5=Y;Object.defineProperty(Z,Symbol.toStringTag,{value:"Module"})});