@arcgis/map-components
Version:
ArcGIS Map Components
3 lines (2 loc) • 27.6 kB
JavaScript
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
import{a as vt}from"./ACQRIVIF.js";import{D as ft,E as q,P as at,R as _t,S as xt,c as M,ga as ct,i as T,j as v,ja as bt,k as D,l as mt,m as ht,n as dt,o as et,qa as ut,ra as lt,sa as kt}from"./ID7AT6M5.js";import{O as R,a as z,u as w}from"./XDQDTW2I.js";import{a as gt,b as tt,d as A,e as _}from"./XENQYCEN.js";import{W,X as yt,g as Y,o as k}from"./ZJXSHJF2.js";import"./3TTFCHAA.js";var st=class extends yt{setupDefaultRules(){super.setupDefaultRules();let e=this._root.interfaceColors,t=this.rule.bind(this);t("PercentSeries").setAll({legendLabelText:"{category}",legendValueText:"{valuePercentTotal.formatNumber('0.00p')}",colors:kt.new(this._root,{}),width:A,height:A}),t("PieChart").setAll({radius:tt(80),startAngle:-90,endAngle:270}),t("PieSeries").setAll({alignLabels:!0,startAngle:-90,endAngle:270}),t("PieSeries").states.create("hidden",{endAngle:-90,opacity:0}),t("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"}),t("Slice",["pie"]).states.create("active",{shiftRadius:20,scale:1}),t("Slice",["pie"]).states.create("hoverActive",{scale:1.04}),t("Slice",["pie"]).states.create("hover",{scale:1.04}),t("RadialLabel",["pie"]).setAll({textType:"aligned",radius:10,text:"{category}: {valuePercentTotal.formatNumber('0.00p')}",paddingTop:5,paddingBottom:5,populateText:!0}),t("Tick",["pie"]).setAll({location:1}),t("SlicedChart").setAll({paddingLeft:10,paddingRight:10,paddingTop:10,paddingBottom:10}),t("FunnelSeries").setAll({startLocation:0,endLocation:1,orientation:"vertical",alignLabels:!0,sequencedInterpolation:!0}),t("FunnelSlice").setAll({interactive:!0,expandDistance:0}),t("FunnelSlice").states.create("hover",{expandDistance:.15}),t("Label",["funnel"]).setAll({populateText:!0,text:"{category}: {valuePercentTotal.formatNumber('0.00p')}",centerY:_}),t("Label",["funnel","horizontal"]).setAll({centerX:0,centerY:_,rotation:-90}),t("Label",["funnel","vertical"]).setAll({centerY:_,centerX:0}),t("Tick",["funnel"]).setAll({location:1}),t("FunnelSlice",["funnel","link"]).setAll({fillOpacity:.5,strokeOpacity:0,expandDistance:-.1}),t("FunnelSlice",["funnel","link","vertical"]).setAll({height:10}),t("FunnelSlice",["funnel","link","horizontal"]).setAll({width:10}),t("PyramidSeries").setAll({valueIs:"area"}),t("FunnelSlice",["pyramid","link"]).setAll({fillOpacity:.5}),t("FunnelSlice",["pyramid","link","vertical"]).setAll({height:0}),t("FunnelSlice",["pyramid","link","horizontal"]).setAll({width:0}),t("FunnelSlice",["pyramid"]).setAll({interactive:!0,expandDistance:0}),t("FunnelSlice",["pyramid"]).states.create("hover",{expandDistance:.15}),t("Label",["pyramid"]).setAll({populateText:!0,text:"{category}: {valuePercentTotal.formatNumber('0.00p')}",centerY:_}),t("Label",["pyramid","horizontal"]).setAll({centerX:0,centerY:_,rotation:-90}),t("Label",["pyramid","vertical"]).setAll({centerY:_,centerX:0}),t("Tick",["pyramid"]).setAll({location:1}),t("FunnelSlice",["pictorial"]).setAll({interactive:!0,tooltipText:"{category}: {valuePercentTotal.formatNumber('0.00p')}"}),t("Label",["pictorial"]).setAll({populateText:!0,text:"{category}: {valuePercentTotal.formatNumber('0.00p')}",centerY:_}),t("Label",["pictorial","horizontal"]).setAll({centerX:0,centerY:_,rotation:-90}),t("Label",["pictorial","vertical"]).setAll({centerY:_,centerX:0}),t("FunnelSlice",["pictorial","link"]).setAll({fillOpacity:.5,width:0,height:0}),t("Tick",["pictorial"]).setAll({location:.5});{let s=t("Graphics",["pictorial","background"]);s.setAll({fillOpacity:.2}),xt(s,"fill",e,"alternativeBackground")}}};var C=class extends ut{_afterNew(){this._defaultThemes.push(st.new(this._root)),super._afterNew(),this.chartContainer.children.push(this.seriesContainer),this.seriesContainer.children.push(this.bulletsContainer)}_processSeries(e){super._processSeries(e),this.seriesContainer.children.moveValue(this.bulletsContainer,this.seriesContainer.children.length-1)}};C.className="PercentChart";C.classNames=ut.classNames.concat([C.className]);var L=class extends ct{constructor(){super(...arguments),this.slicesContainer=this.children.push(at.new(this._root,{position:"absolute",isMeasured:!1})),this.labelsContainer=this.children.push(at.new(this._root,{position:"absolute",isMeasured:!1})),this.ticksContainer=this.children.push(at.new(this._root,{position:"absolute",isMeasured:!1})),this._lLabels=[],this._rLabels=[],this._hLabels=[],this.slices=this.addDisposer(this._makeSlices()),this.labels=this.addDisposer(this._makeLabels()),this.ticks=this.addDisposer(this._makeTicks())}_applyThemes(e=!1){let t=this.get("colors");return t&&t.reset(),super._applyThemes(e)}makeSlice(e){let t=this.slicesContainer.children.push(this.slices.make());return t.on("fill",()=>{this.updateLegendMarker(e)}),t.on("fillPattern",()=>{this.updateLegendMarker(e)}),t.on("stroke",()=>{this.updateLegendMarker(e)}),t._setDataItem(e),e.set("slice",t),this.slices.push(t),t}makeLabel(e){let t=this.labelsContainer.children.push(this.labels.make());return t._setDataItem(e),e.set("label",t),this.labels.push(t),t}_shouldMakeBullet(e){return e.get("value")!=null}makeTick(e){let t=this.ticksContainer.children.push(this.ticks.make());return t._setDataItem(e),e.set("tick",t),this.ticks.push(t),t}_afterNew(){this.fields.push("category","fill"),super._afterNew()}_onDataClear(){let e=this.get("colors");e&&e.reset();let t=this.get("patterns");t&&t.reset()}_prepareChildren(){if(super._prepareChildren(),this._lLabels=[],this._rLabels=[],this._hLabels=[],this._valuesDirty){let e=0,t=0,s=0,i=1/0,a=0;k(this._dataItems,l=>{let r=l.get("valueWorking",0);e+=r,t+=Math.abs(r)}),k(this._dataItems,l=>{let r=l.get("valueWorking",0);r>s&&(s=r),r<i&&(i=r),a++;let n=r/t;t==0&&(n=0),l.setRaw("valuePercentTotal",n*100)}),this.setPrivateRaw("valueLow",i),this.setPrivateRaw("valueHigh",s),this.setPrivateRaw("valueSum",e),this.setPrivateRaw("valueAverage",e/a),this.setPrivateRaw("valueAbsoluteSum",t)}}show(e){let t=Object.create(null,{show:{get:()=>super.show}});return z(this,void 0,void 0,function*(){let s=[];s.push(t.show.call(this,e)),s.push(this._sequencedShowHide(!0,e)),yield Promise.all(s)})}hide(e){let t=Object.create(null,{hide:{get:()=>super.hide}});return z(this,void 0,void 0,function*(){let s=[];s.push(t.hide.call(this,e)),s.push(this._sequencedShowHide(!1,e)),yield Promise.all(s)})}_updateChildren(){super._updateChildren(),this._valuesDirty&&k(this._dataItems,e=>{e.get("label").text.markDirtyText()}),(this.isDirty("legendLabelText")||this.isDirty("legendValueText"))&&k(this._dataItems,e=>{this.updateLegendValue(e)}),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),k(this.dataItems,e=>{this._updateTick(e)})}_afterChanged(){super._afterChanged(),this._arrange()}processDataItem(e){if(super.processDataItem(e),e.get("fill")==null){let t=this.get("colors");t&&e.setRaw("fill",t.next())}if(e.get("fillPattern")==null){let t=this.get("patterns");t&&e.setRaw("fillPattern",t.next())}}showDataItem(e,t){let s=Object.create(null,{showDataItem:{get:()=>super.showDataItem}});return z(this,void 0,void 0,function*(){let i=[s.showDataItem.call(this,e,t)];Y(t)||(t=this.get("stateAnimationDuration",0));let a=this.get("stateAnimationEasing"),l=e.get("value"),r=e.animate({key:"valueWorking",to:l,duration:t,easing:a});r&&i.push(r.waitForStop());let n=e.get("tick");n&&i.push(n.show(t));let c=e.get("label");c&&i.push(c.show(t));let o=e.get("slice");o&&i.push(o.show(t)),o.get("active")&&o.states.applyAnimate("active"),yield Promise.all(i)})}hideDataItem(e,t){let s=Object.create(null,{hideDataItem:{get:()=>super.hideDataItem}});return z(this,void 0,void 0,function*(){let i=[s.hideDataItem.call(this,e,t)],a=this.states.create("hidden",{});Y(t)||(t=a.get("stateAnimationDuration",this.get("stateAnimationDuration",0)));let l=a.get("stateAnimationEasing",this.get("stateAnimationEasing")),r=e.animate({key:"valueWorking",to:0,duration:t,easing:l});r&&i.push(r.waitForStop());let n=e.get("tick");n&&i.push(n.hide(t));let c=e.get("label");c&&i.push(c.hide(t));let o=e.get("slice");o.hideTooltip(),o&&i.push(o.hide(t)),yield Promise.all(i)})}disposeDataItem(e){super.disposeDataItem(e);let t=e.get("label");t&&(this.labels.removeValue(t),t.dispose());let s=e.get("tick");s&&(this.ticks.removeValue(s),s.dispose());let i=e.get("slice");i&&(this.slices.removeValue(i),i.dispose())}hoverDataItem(e){let t=e.get("slice");t&&!t.isHidden()&&t.hover()}unhoverDataItem(e){let t=e.get("slice");t&&t.unhover()}updateLegendMarker(e){if(e){let t=e.get("slice");if(t){let s=e.get("legendDataItem");if(s){let i=s.get("markerRectangle");k(ft,a=>{t.get(a)!=null&&i.set(a,t.get(a))})}}}}_arrangeDown(e){if(e){let t=this._getNextDown();e.sort((s,i)=>s.y>i.y?1:s.y<i.y?-1:0),k(e,s=>{let i=s.label.adjustedLocalBounds(),a=i.top;s.y+a<t&&(s.y=t-a),s.label.set("y",s.y),t=s.y+i.bottom})}}_getNextUp(){return this.labelsContainer.maxHeight()}_getNextDown(){return 0}_arrangeUp(e){if(e){let t=this._getNextUp();e.sort((s,i)=>s.y<i.y?1:s.y>i.y?-1:0),k(e,s=>{let i=s.label.adjustedLocalBounds(),a=i.bottom;s.y+a>t&&(s.y=t-a),s.label.set("y",s.y),t=s.y+i.top})}}_arrangeRight(e){if(e){let t=0;e.sort((s,i)=>s.y>i.y?1:s.y<i.y?-1:0),k(e,s=>{let i=s.label.adjustedLocalBounds(),a=i.left;s.y+a<t&&(s.y=t-a),s.label.set("x",s.y),t=s.y+i.right})}}_arrangeLeft(e){if(e){let t=this.labelsContainer.maxWidth();e.sort((s,i)=>s.y<i.y?1:s.y>i.y?-1:0),k(e,s=>{let i=s.label.adjustedLocalBounds(),a=i.right;s.y+a>t&&(s.y=t-a),s.label.set("x",s.y),t=s.y+i.left})}}_updateSize(){super._updateSize(),this.markDirty()}_updateTick(e){}_dispose(){super._dispose();let e=this.chart;e&&e.series.removeValue(this)}};L.className="PercentSeries";L.classNames=ct.classNames.concat([L.className]);var G=class extends C{constructor(){super(...arguments),this._maxRadius=1}_afterNew(){super._afterNew(),this.seriesContainer.setAll({x:_,y:_})}_prepareChildren(){super._prepareChildren();let e=this.chartContainer,t=e.innerWidth(),s=e.innerHeight(),i=this.get("startAngle",0),a=this.get("endAngle",0),l=this.get("innerRadius"),r=ht(0,0,i,a,1),n=t/(r.right-r.left),c=s/(r.bottom-r.top),o={left:0,right:0,top:0,bottom:0};if(l instanceof gt){let p=l.value,g=Math.min(n,c);p=Math.max(g*p,g-Math.min(s,t))/g,o=ht(0,0,i,a,p),this.setPrivateRaw("irModifyer",p/l.value)}r=dt([r,o]);let m=this._maxRadius;this._maxRadius=Math.min(n,c);let h=w(this.get("radius",0),this._maxRadius);this.seriesContainer.setAll({dy:-h*(r.bottom+r.top)/2,dx:-h*(r.right+r.left)/2}),(this.isDirty("startAngle")||this.isDirty("endAngle")||m!=this._maxRadius)&&this.series.each(p=>{p._markDirtyKey("startAngle")}),(this.isDirty("innerRadius")||this.isDirty("radius"))&&this.series.each(p=>{p._markDirtyKey("innerRadius")})}radius(e){let t=w(this.get("radius",0),this._maxRadius),s=w(this.get("innerRadius",0),t);if(e){let i=this.series.indexOf(e),a=this.series.length,l=e.get("radius");return l!=null?s+w(l,t-s):s+(t-s)/a*(i+1)}return t}innerRadius(e){let t=this.radius(),s=w(this.get("innerRadius",0),t);if(s<0&&(s=t+s),e){let i=this.series.indexOf(e),a=this.series.length,l=e.get("innerRadius");return l!=null?s+w(l,t-s):s+(t-s)/a*i}return s}_updateSize(){super._updateSize(),this.markDirtyKey("radius")}};G.className="PieChart";G.classNames=C.classNames.concat([G.className]);var U=class extends L{_makeSlices(){return new M(W.new({}),()=>vt._new(this._root,{themeTags:R(this.slices.template.get("themeTags",[]),["pie","series"])},[this.slices.template]))}_makeLabels(){return new M(W.new({}),()=>bt._new(this._root,{themeTags:R(this.labels.template.get("themeTags",[]),["pie","series"])},[this.labels.template]))}_makeTicks(){return new M(W.new({}),()=>lt._new(this._root,{themeTags:R(this.ticks.template.get("themeTags",[]),["pie","series"])},[this.ticks.template]))}processDataItem(e){super.processDataItem(e);let t=this.makeSlice(e);t.on("scale",()=>{this._updateTick(e)}),t.on("shiftRadius",()=>{this._updateTick(e)}),t.events.on("positionchanged",()=>{this._updateTick(e)});let s=this.makeLabel(e);s.events.on("positionchanged",()=>{this._updateTick(e)}),this.makeTick(e),t.events.on("positionchanged",()=>{s.markDirty()})}_getNextUp(){let e=this.chart;return e?e._maxRadius:this.labelsContainer.maxHeight()/2}_getNextDown(){let e=this.chart;return e?-e._maxRadius:-this.labelsContainer.maxHeight()/2}_prepareChildren(){super._prepareChildren();let e=this.chart;if(e){if(this.isDirty("alignLabels")){let t=this.labels.template;if(this.get("alignLabels"))t.set("textType","aligned");else{let s=t.get("textType");(s==null||s=="aligned")&&t.set("textType","adjusted")}}if(this._valuesDirty||this.isDirty("radius")||this.isDirty("innerRadius")||this.isDirty("startAngle")||this.isDirty("endAngle")||this.isDirty("alignLabels")){this.markDirtyBounds();let t=this.get("startAngle",e.get("startAngle",-90)),i=this.get("endAngle",e.get("endAngle",270))-t,a=t,l=e.radius(this);this.setPrivateRaw("radius",l);let r=e.innerRadius(this)*e.getPrivate("irModifyer",1);r<0&&(r=l+r),k(this._dataItems,n=>{this.updateLegendValue(n);let c=i*n.get("valuePercentTotal")/100,o=n.get("slice");if(o){o.set("radius",l),o.set("innerRadius",r),o.set("startAngle",a),o.set("arc",c);let p=n.get("fill");o._setDefault("fill",p),o._setDefault("stroke",p);let g=n.get("fillPattern");o._setDefault("fillPattern",g)}let m=mt(a+c/2),h=n.get("label");if(h&&(h.setPrivate("radius",l),h.setPrivate("innerRadius",r),h.set("labelAngle",m),h.get("textType")=="aligned")){let p=l+h.get("radius",0),g=l*T(m);m>90&&m<=270?(!h.isHidden()&&!h.isHiding()&&this._lLabels.push({label:h,y:g}),p*=-1,p-=this.labelsContainer.get("paddingLeft",0),h.set("centerX",A),h.setPrivateRaw("left",!0)):(!h.isHidden()&&!h.isHiding()&&this._rLabels.push({label:h,y:g}),p+=this.labelsContainer.get("paddingRight",0),h.set("centerX",0),h.setPrivateRaw("left",!1)),h.set("x",p),h.set("y",l*T(m))}a+=c,this._updateTick(n)})}}}_updateTick(e){let t=e.get("tick"),s=e.get("label"),i=e.get("slice"),a=t.get("location",1);if(t&&s&&i){let l=(i.get("shiftRadius",0)+i.get("radius",0))*i.get("scale",1)*a,r=s.get("labelAngle",0),n=D(r),c=T(r),o=this.labelsContainer,m=o.get("paddingLeft",0),h=o.get("paddingRight",0),p=0,g=0;p=s.x(),g=s.y();let u=[];if(p!=0||g!=0){if(s.get("textType")=="circular"){let y=s.radius()-s.get("paddingBottom",0),x=s.get("labelAngle",0);p=y*D(x),g=y*T(x)}let d=-h;s.getPrivate("left")&&(d=m),u=[{x:i.x()+l*n,y:i.y()+l*c},{x:p+d,y:g},{x:p,y:g}]}t.set("points",u)}}_positionBullet(e){let t=e.get("sprite");if(t){let i=t.dataItem.get("slice");if(i){let a=i.get("innerRadius",0),l=i.get("radius",0),r=i.get("startAngle",0),n=i.get("arc",0),c=e.get("locationX",.5),o=e.get("locationY",.5),m=r+n*c,h=a+(l-a)*o;t.setAll({x:D(m)*h,y:T(m)*h})}}}};U.className="PieSeries";U.classNames=L.classNames.concat([U.className]);var V=class extends q{constructor(){super(...arguments),this._projectionDirty=!1,this._tlx=0,this._tly=0,this._trx=0,this._try=0,this._blx=0,this._bly=0,this._brx=0,this._bry=0,this._cprx=0,this._cplx=0,this._cpry=0,this._cply=0}_afterNew(){super._afterNew(),this.set("draw",e=>{let t=this.width(),s=this.height(),i=Math.min(t,s)/2,a=w(this.get("cornerRadiusTL",0),i),l=w(this.get("cornerRadiusTR",0),i),r=w(this.get("cornerRadiusBR",0),i),n=w(this.get("cornerRadiusBL",0),i),c=this._trx,o=this._try,m=this._tlx,h=this._tly,p=this._brx,g=this._bry,u=this._blx,d=this._bly;o==h&&(o=o-.01),g==d&&(g=g-.01);let y=et({x:m,y:h},{x:c,y:o}),x=et({x:c,y:o},{x:p,y:g}),b=et({x:p,y:g},{x:u,y:d}),f=et({x:u,y:d},{x:m,y:h});this.get("orientation")=="horizontal"?(a=Math.min(a,Math.abs(h-o)/2),l=Math.min(l,Math.abs(h-o)/2),r=Math.min(r,Math.abs(d-g)/2),n=Math.min(n,Math.abs(d-g)/2)):(a=Math.min(a,Math.abs(m-c)/2),l=Math.min(l,Math.abs(m-c)/2),r=Math.min(r,Math.abs(u-p)/2),n=Math.min(n,Math.abs(u-p)/2));let $=m-a*v((y-f)/2)*D(f),N=h-a*v((y-f)/2)*T(f),F=m-a*v((f-y)/2)*D(y),Z=h-a*v((f-y)/2)*T(y),P=c-l*v((x-y)/2)*D(y),nt=o-l*v((x-y)/2)*T(y),B=c-l*v((y-x)/2)*D(x),O=o-l*v((y-x)/2)*T(x),J=p-r*v((b-x)/2)*D(x),j=g-r*v((b-x)/2)*T(x),Q=p-r*v((x-b)/2)*D(b),I=g-r*v((x-b)/2)*T(b),pt=u-n*v((f-b)/2)*D(b),it=d-n*v((f-b)/2)*T(b),ot=u-n*v((b-f)/2)*D(f),Dt=d-n*v((b-f)/2)*T(f);e.moveTo(F,Z),e.lineTo(P,nt),e.arcTo(c,o,B,O,l),e.quadraticCurveTo(this._cprx,this._cpry,J,j),e.arcTo(p,g,Q,I,r),e.lineTo(pt,it),e.arcTo(u,d,ot,Dt,n),e.quadraticCurveTo(this._cplx,this._cply,$,N),e.arcTo(m,h,F,Z,a)})}getPoint(e,t){let s=this.width(),i=this.height(),a=this.get("topWidth",0),l=this.get("bottomWidth",0);if(this.get("orientation")=="vertical"){let r=-a/2,n=a/2,c=l/2,o=-l/2,m=r+(o-r)*t,h=n+(c-n)*t;return{x:m+(h-m)*e,y:i*t}}else{let r=-a/2,n=a/2,c=l/2,o=-l/2,m=r+(o-r)*e,h=n+(c-n)*e;return{x:s*e,y:m+(h-m)*t}}}_changed(){if(this.isDirty("topWidth")||this.isDirty("bottomWidth")||this.isDirty("expandDistance")||this.isDirty("orientation")||this.isDirty("width")||this.isDirty("height")){let e=this.width(),t=this.height(),s=this.get("topWidth",0),i=this.get("bottomWidth",0);this._clear=!0;let a=this.get("expandDistance",0);this.get("orientation")=="vertical"?(this._tlx=-s/2,this._tly=0,this._trx=s/2,this._try=0,this._brx=i/2,this._bry=t,this._blx=-i/2,this._bly=t,this._cprx=this._trx+(this._brx-this._trx)/2+a*t,this._cpry=this._try+.5*t,this._cplx=this._tlx+(this._blx-this._tlx)/2-a*t,this._cply=this._tly+.5*t):(this._tly=s/2,this._tlx=0,this._try=-s/2,this._trx=0,this._bry=-i/2,this._brx=e,this._bly=i/2,this._blx=e,this._cpry=this._try+(this._bry-this._try)/2-a*e,this._cprx=this._trx+.5*e,this._cply=this._tly+(this._bly-this._tly)/2+a*e,this._cplx=this._tlx+.5*e)}super._changed()}};V.className="FunnelSlice";V.classNames=q.classNames.concat([V.className]);var H=class extends L{constructor(){super(...arguments),this._tag="funnel",this.links=this.addDisposer(this._makeLinks()),this._total=0,this._count=0,this._nextCoord=0,this._opposite=!1}_makeSlices(){return new M(W.new({}),()=>V._new(this._root,{themeTags:R(this.slices.template.get("themeTags",[]),[this._tag,"series","slice",this.get("orientation")])},[this.slices.template]))}_makeLabels(){return new M(W.new({}),()=>_t._new(this._root,{themeTags:R(this.labels.template.get("themeTags",[]),[this._tag,"series","label",this.get("orientation")])},[this.labels.template]))}_makeTicks(){return new M(W.new({}),()=>lt._new(this._root,{themeTags:R(this.ticks.template.get("themeTags",[]),[this._tag,"series","tick",this.get("orientation")])},[this.ticks.template]))}_makeLinks(){return new M(W.new({}),()=>V._new(this._root,{themeTags:R(this.links.template.get("themeTags",[]),[this._tag,"series","link",this.get("orientation")])},[this.links.template]))}makeLink(e){let t=this.slicesContainer.children.push(this.links.make());return t._setDataItem(e),e.set("link",t),this.links.push(t),t}_afterNew(){super._afterNew();let e=this.slicesContainer;e.setAll({isMeasured:!0,position:"relative",width:tt(100),height:tt(100)}),e.onPrivate("width",()=>{this.markDirtySize()}),e.onPrivate("height",()=>{this.markDirtySize()}),this.get("orientation")=="vertical"?this.set("layout",this._root.horizontalLayout):this.set("layout",this._root.verticalLayout)}processDataItem(e){super.processDataItem(e);let t=this.makeSlice(e);t._setDataItem(e),e.set("slice",t),this.makeLink(e);let s=this.makeLabel(e);s.on("x",()=>{this._updateTick(e)}),s.on("y",()=>{this._updateTick(e)}),this.makeTick(e),t.events.on("positionchanged",()=>{s.markDirty()}),t.events.on("boundschanged",()=>{let i=t.dataItem;i&&this._updateTick(i)})}_updateChildren(){this._opposite=!1,this.children.indexOf(this.labelsContainer)==0&&(this._opposite=!0);let e=0,t=0;if(k(this.dataItems,s=>{let i=s.get("value");Y(i)&&(t++,i>0?e+=Math.abs(s.get("valueWorking",i)/i):this.get("ignoreZeroValues",!1)||s.isHidden()?t--:e+=1)}),this._total=1/t*e,this._count=t,this.isDirty("alignLabels")&&this._fixLayout(),this._total>0&&(this._valuesDirty||this._sizeDirty)){let s=this.slicesContainer,i;this.get("orientation")=="vertical"?i=s.innerHeight():i=s.innerWidth(),this._nextCoord=this.get("startLocation",0)*i,this.markDirtyBounds();let a=0;k(this._dataItems,l=>{this.updateLegendValue(l),l.set("index",a),a++;let r=l.get("slice"),n=l.get("tick"),c=l.get("label"),o=l.get("link"),m=l.get("fill"),h=l.get("fillPattern");r._setDefault("fill",m),r._setDefault("stroke",m),r._setDefault("fillPattern",h),o._setDefault("fill",m),o._setDefault("stroke",m);let p=l.get("value");Y(p)&&(p==0&&this.get("ignoreZeroValues")?(r.setPrivate("visible",!1),n.setPrivate("visible",!1),c.setPrivate("visible",!1)):(r.setPrivate("visible",!0),n.setPrivate("visible",!0),c.setPrivate("visible",!0),this.decorateSlice(l),this.isLast(l)?o.setPrivate("visible",!1):l.isHidden()||o.setPrivate("visible",!0)))})}super._updateChildren()}_fixLayout(){let e=this.get("orientation"),t=this.labelsContainer,s=this.labels.template;this.get("alignLabels")?(t.set("position","relative"),t.setAll({isMeasured:!0}),e=="vertical"?(this.set("layout",this._root.horizontalLayout),s.setAll({centerX:A,x:A})):(this.set("layout",this._root.verticalLayout),s.setAll({centerX:0,x:0}))):(t.setAll({isMeasured:!1,position:"absolute"}),e=="vertical"?(t.setAll({x:_}),s.setAll({centerX:_,x:0})):(t.setAll({y:_}),s.setAll({centerX:_,y:0}))),this.markDirtySize()}getNextValue(e){let t=e.get("index"),s=e.get("valueWorking",0);if(t<this.dataItems.length-1){let i=this.dataItems[t+1];if(s=i.get("valueWorking",0),i.isHidden()||i.get("value")==0&&this.get("ignoreZeroValues"))return this.getNextValue(i)}return s}isLast(e){let t=e.get("index");if(t==this.dataItems.length-1)return!0;for(let s=t+1;s<this.dataItems.length;s++)if(!this.dataItems[s].isHidden())return!1;return!0}decorateSlice(e){let t=this.get("orientation"),s=e.get("slice"),i=e.get("label"),a=e.get("link"),l=this.slicesContainer,r=l.innerWidth(),n=l.innerHeight(),c=r;t=="horizontal"&&(c=n);let o=this.getNextValue(e),m=e.get("value",0),h=Math.abs(e.get("valueWorking",m)),p=this.get("bottomRatio",0),g=this.getPrivate("valueHigh",0),u=1;m!=0?u=h/Math.abs(m):e.isHidden()&&(u=1e-6),this._nextCoord==1/0&&(this._nextCoord=0);let d=h/g*c,y=(h-(h-o)*p)/g*c;s.setAll({topWidth:d,bottomWidth:y,orientation:t}),a.setAll({topWidth:y,bottomWidth:(h-(h-o))/g*c,orientation:t});let x=this.get("startLocation",0),b=this.get("endLocation",1);if(t=="vertical"){let f=a.height()*u;n=n*(b-x)+f,s.set("y",this._nextCoord);let $=Math.min(1e5,Math.max(0,n/this._count*u/this._total-f));s.setAll({height:$,x:r/2});let N=this._nextCoord+$/2;i.set("y",N),this._nextCoord+=$+f,a.setAll({y:this._nextCoord-f,x:r/2})}else{let f=a.width()*u;r=r*(b-x)+f,s.set("x",this._nextCoord);let $=Math.min(1e5,Math.max(0,r/this._count*u/this._total-f));s.setAll({width:$,y:n/2});let N=this._nextCoord+$/2;i.set("x",N),this._nextCoord+=$+f,a.setAll({x:this._nextCoord-f,y:n/2})}}hideDataItem(e,t){let s=Object.create(null,{hideDataItem:{get:()=>super.hideDataItem}});return z(this,void 0,void 0,function*(){return e.get("link").hide(t),s.hideDataItem.call(this,e,t)})}showDataItem(e,t){let s=Object.create(null,{showDataItem:{get:()=>super.showDataItem}});return z(this,void 0,void 0,function*(){return e.get("link").show(t),s.showDataItem.call(this,e,t)})}_updateTick(e){if(this.get("alignLabels")){let t=e.get("tick"),s=e.get("label"),i=e.get("slice");if(t&&i&&s){let a=this.labelsContainer,l=this.slicesContainer,r=t.get("location",.5),n=a.width(),c=a.height(),o=a.get("paddingLeft",0),m=a.get("paddingRight",0),h=a.get("paddingTop",0),p=a.get("paddingBottom",0),g={x:0,y:0},u={x:0,y:0},d={x:0,y:0};this._opposite&&(r=1-r),this.get("orientation")=="vertical"?(g=i.getPoint(r,.5),g.x+=i.x()+l.x(),g.y+=i.y()+l.y(),this._opposite?(u.x=n,u.y=s.y(),d.x=n-o,d.y=u.y):(u.x=l.x()+l.width(),u.y=s.y(),d.x=u.x+n-s.width()-m,d.y=u.y)):(g=i.getPoint(.5,r),g.x+=i.x()+l.x(),g.y+=i.y()+l.y(),this._opposite?(u.y=c,u.x=s.x(),d.y=c-h,d.x=u.x):(u.y=l.y()+l.height(),u.x=s.x(),d.y=u.y+c-s.height()-p,d.x=u.x)),t.set("points",[g,u,d])}}}disposeDataItem(e){super.disposeDataItem(e);let t=e.get("link");t&&(this.links.removeValue(t),t.dispose())}_positionBullet(e){let t=e.get("sprite");if(t){let i=t.dataItem.get("slice");if(i){let a=i.width(),l=i.height(),r=e.get("locationX",.5),n=e.get("locationY",.5),c=0,o=0;this.get("orientation")=="horizontal"?o=l/2:c=a/2,t.setAll({x:i.x()+a*r-c,y:i.y()-o+l*n})}}}};H.className="FunnelSeries";H.classNames=L.classNames.concat([H.className]);var X=class extends H{constructor(){super(...arguments),this._tag="pyramid"}_prepareChildren(){super._prepareChildren(),this._nextSize=void 0}decorateSlice(e){let t=this.get("orientation"),s=this.slicesContainer,i=e.get("slice"),a=e.get("label"),l=e.get("link"),r=this.get("valueIs","area"),n=this.getPrivate("valueAbsoluteSum",0);if(n==0)return;let c=this.get("startLocation",0),o=this.get("endLocation",1),m=this.get("topWidth",0),h=this.get("bottomWidth",A),p=Math.abs(e.get("valueWorking",0)),g=e.get("value",0),u,d,y=s.innerHeight(),x=s.innerWidth(),b=l.width(),f=l.height();t=="horizontal"&&([x,y]=[y,x],[b,f]=[f,b]);let $=x/2,N=1;g!=0?N=p/Math.abs(g):e.isHidden()&&(N=1e-6),f*=N,y=y*(o-c)-f*(this._count*this._total-1);let F=w(m,x);Y(this._nextSize)||(this._nextSize=F);let Z=w(h,x),P=this._nextSize,nt=Math.atan2(y,F-Z),B=Math.tan(Math.PI/2-nt);if(B==0&&(B=1e-8),r=="area"){let it=(F+Z)/2*y*p/n,ot=Math.abs(P*P-2*it*B);u=(P-Math.sqrt(ot))/B,u>0?d=(2*it-u*P)/u:d=P}else u=y*p/n,d=P-u*B;let O=this._nextCoord+u/2,J=$,j=this._nextCoord,Q=$,I=j+u;t=="vertical"?(a.set("y",O),a.get("opacity")>0&&this._rLabels.push({label:a,y:O}),i.set("height",u)):(a.set("x",O),a.get("opacity")>0&&this._hLabels.push({label:a,y:O}),[J,j]=[j,J],[Q,I]=[I,Q],i.set("width",u)),i.setAll({orientation:t,bottomWidth:d,topWidth:P,x:J,y:j}),l.setAll({orientation:t,x:Q,y:I,topWidth:d,bottomWidth:d}),this._nextSize=d,this._nextCoord+=u+f}};X.className="PyramidSeries";X.classNames=H.classNames.concat([X.className]);var K=class extends X{constructor(){super(...arguments),this._tag="pictorial",this.seriesMask=q.new(this._root,{position:"absolute",x:_,y:_,centerX:_,centerY:_}),this.seriesGraphics=this.slicesContainer.children.push(q.new(this._root,{themeTags:["pictorial","background"],position:"absolute",x:_,y:_,centerX:_,centerY:_}))}_afterNew(){super._afterNew(),this.set("topWidth",A),this.set("bottomWidth",A),this.set("valueIs","height"),this.slicesContainer.set("mask",this.seriesMask)}_updateScale(){let e=this.slicesContainer,t=e.innerWidth(),s=e.innerHeight(),i=this.seriesMask,a=this.seriesGraphics,l=i.get("scale",1),r=i.localBounds(),n=r.right-r.left,c=r.bottom-r.top;this.get("orientation")=="horizontal"?l=t/n:l=s/c,l!=1/0&&!Number.isNaN(l)&&(i.set("scale",l),i.set("x",t/2),i.set("y",s/2),a.set("scale",l),a.set("x",t/2),a.set("y",s/2))}_prepareChildren(){if(super._prepareChildren(),this.isDirty("svgPath")){let e=this.get("svgPath");this.seriesMask.set("svgPath",e),this.seriesGraphics.set("svgPath",e)}this._updateScale()}};K.className="PictorialStackedSeries";K.classNames=X.classNames.concat([K.className]);var E=class extends C{_afterNew(){super._afterNew(),this.seriesContainer.setAll({isMeasured:!0,layout:this._root.horizontalLayout})}};E.className="SlicedChart";E.classNames=C.classNames.concat([E.className]);export{st as DefaultTheme,H as FunnelSeries,V as FunnelSlice,C as PercentChart,L as PercentSeries,K as PictorialStackedSeries,G as PieChart,U as PieSeries,X as PyramidSeries,E as SlicedChart};