UNPKG

highcharts

Version:
13 lines 6.09 kB
/** * Highcharts JS v13.0.1 (2026-08-17) * @module highcharts/modules/funnel * @requires highcharts * * Highcharts funnel module * * (c) 2010-2026 Highsoft AS * Author: Torstein Hønsi * * A commercial license may be required depending on use, * see www.highcharts.com/license */import*as t from"../highcharts.js";let e={};e.n=t=>{let a=t&&t.__esModule?()=>t.default:()=>t;return e.d(a,{a:a}),a},e.d=(t,a)=>{if(Array.isArray(a))for(var i=0;i<a.length;){var d=a[i++],s=a[i++];e.o(t,d)?0===s&&i++:0===s?Object.defineProperty(t,d,{enumerable:!0,value:a[i++]}):Object.defineProperty(t,d,{enumerable:!0,get:s})}else for(var d in a)e.o(a,d)&&!e.o(t,d)&&Object.defineProperty(t,d,{enumerable:!0,get:a[d]})},e.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);let a=t.default;var i=e.n(a);let{defaultOptions:d}=i(),{noop:s}=i(),l={radius:0,scope:"stack",where:void 0},o=t.default.SeriesRegistry;var r=e.n(o);let{composed:n,noop:h}=i(),{column:p,pie:c}=r().seriesTypes,g=r().series.prototype.alignDataLabel;function u(t,e){return/%$/.test(t)?e*parseInt(t,10)/100:parseInt(t,10)}class x extends c{alignDataLabel(t,e,i,d,s){let l=t.series,o=l.options.reversed,r=t.dlBox||t.shapeArgs,{align:n,verticalAlign:h}=i,p=(0,a.splat)(i.padding||0),c=((l.options||{}).dataLabels||{}).inside,u=l.center[1],x=t.plotY||0,y=e.height??e.getBBox().height,b=l.getWidthAt((o?2*u-x:x)-r.height/2+y),f="middle"===h?(r.topWidth-r.bottomWidth)/4:(b-r.bottomWidth)/2,L=r.y,m=r.x;"middle"===h?L=r.y-r.height/2+y/2:"top"===h&&(L=r.y-r.height+y+p[0]),("top"===h&&!o||"bottom"===h&&o||"middle"===h)&&("right"===n?m=r.x-p[1%p.length]+f:"left"===n&&(m=r.x+p[3%p.length]-f)),d={x:m,y:o?L-r.height:L,width:r.bottomWidth,height:r.height},i.verticalAlign="bottom",c&&(i.distance=void 0),c&&t.visible&&g.call(l,t,e,i,d,s),c&&(!t.visible&&t.dataLabel&&(t.dataLabel.placed=!1),t.contrastColor&&e.css({color:t.contrastColor}))}drawDataLabels(){((0,a.splat)(this.options.dataLabels||{})[0].inside?p:c).prototype.drawDataLabels.call(this)}getDataLabelPosition(t,e){let a=t.plotY||0,i=t.half?1:-1,d=this.getXPos(a,!!t.half,t);return{distance:e,natural:{x:0,y:a},computed:{},alignment:t.half?"right":"left",connectorPosition:{breakAt:{x:d+(e-5)*i,y:a},touchingSliceAt:{x:d+e*i,y:a}}}}translate(){var t;let e=this,i=e.chart,d=e.options,s=d.reversed,o=d.ignoreHiddenPoint,r=(t=d.borderRadius,(0,a.isObject)(t)||(t={radius:t||0}),(0,a.merge)(l,void 0,t)),n=i.plotWidth,p=i.plotHeight,c=d.center,g=u(c[0],n),x=u(c[1],p),y=u(d.width,n),b=u(d.height,p),f=u(d.neckWidth,n),L=u(d.neckHeight,p),m=x-b/2+b-L,v=e.points,M=(0,a.relativeLength)(r.radius,y),A=r.scope,W=+("left"===d.dataLabels.position),P=(t,e)=>{let a=Math.tan(t/2),i=Math.cos(H),d=Math.sin(H),l=M,o=l/a,r=Math.tan((Math.PI-t)/3.2104);return o>e&&(l=(o=e)*a),{dx:[o*i,(o-(r*=l))*i,o-r,o],dy:[o*d,(o-r)*d,o-r,o].map(t=>s?-t:t)}},C=0,k=0,O=-1,w=-1,D,I,j,H,Y,B,S,T,X,R,_;for(let t of(e.getWidthAt=function(t){let e=x-b/2;return t>m||b===L?f:f+(y-f)*(1-(t-e)/(b-L))},e.getXPos=function(t,i,d){return g+(i?-1:1)*(e.getWidthAt(s?2*x-t:t)/2+(d.dataLabel?.dataLabelPosition?.distance??(0,a.relativeLength)(this.options.dataLabels?.distance||0,y)))},e.center=[g,x,b],e.centerX=g,v))t.y&&t.isValid()&&(!o||!1!==t.visible)&&(C+=t.y,-1===O&&(O=t.index),w=t.index);for(let t of v){if(_=null,j=C?t.y/C:0,X=(B=x-b/2+k*b)+j*b,S=(Y=g-(D=e.getWidthAt(B))/2)+D,R=(T=g-(D=e.getWidthAt(X))/2)+D,(0,a.correctFloat)(B)>=m?(Y=T=g-f/2,S=R=g+f/2):X>m&&(_=X,R=(T=g-(D=e.getWidthAt(m))/2)+D,X=m),s&&(B=2*x-B,X=2*x-X,null!==_&&(_=2*x-_)),M&&("point"===A||t.index===O||t.index===w||null!==_)){let e=Math.abs(X-B),a=S-R,i=R-T,d=Math.sqrt(a*a+e*e),s=S-Y,l=P(H=Math.atan(0!==a?e/a:1/0),Math.min(s,d)/2);if(I="stack"===A&&t.index!==O?[["M",Y,B],["L",S,B]]:[["M",Y+l.dx[0],B+l.dy[0]],["C",Y+l.dx[1],B+l.dy[1],Y+l.dx[2],B,Y+l.dx[3],B],["L",S-l.dx[3],B],["C",S-l.dx[2],B,S-l.dx[1],B+l.dy[1],S-l.dx[0],B+l.dy[0]]],null!==_){let e=Math.abs(_-X),a=P(Math.PI/2,Math.min(i,e)/2);l=P(Math.PI/2+H,Math.min(d,e)/2),I.push(["L",R+l.dx[0],X-l.dy[0]],["C",R+l.dx[1],X-l.dy[1],R,X+l.dy[2],R,X+l.dy[3]]),"stack"===A&&t.index!==w?I.push(["L",R,_],["L",T,_]):I.push(["L",R,_-a.dy[3]],["C",R,_-a.dy[2],R-a.dx[2],_,R-a.dx[3],_],["L",T+a.dx[3],_],["C",T+a.dx[2],_,T,_-a.dy[2],T,_-a.dy[3]]),I.push(["L",T,X+l.dy[3]],["C",T,X+l.dy[2],T-l.dx[1],X-l.dy[1],T-l.dx[0],X-l.dy[0]])}else i>=1?(l=P(Math.PI-H,Math.min(d,i)/2),"stack"===A&&t.index!==w?I.push(["L",R,X],["L",T,X]):I.push(["L",R+l.dx[0],X-l.dy[0]],["C",R+l.dx[1],X-l.dy[1],R-l.dx[2],X,R-l.dx[3],X],["L",T+l.dx[3],X],["C",T+l.dx[2],X,T-l.dx[1],X-l.dy[1],T-l.dx[0],X-l.dy[0]])):(l=P(Math.PI-2*H,d/2),I.push(["L",T+l.dx[0],X-l.dy[0]],["C",T+l.dx[1],X-l.dy[1],T-l.dx[1],X-l.dy[1],T-l.dx[0],X-l.dy[0]]))}else I=[["M",Y,B],["L",S,B],["L",R,X]],null!==_&&I.push(["L",R,_],["L",T,_]),I.push(["L",T,X]);I.push(["Z"]),t.shapeType="path",t.shapeArgs={d:I},t.percentage=100*j,t.plotX=g,t.plotY=(B+(_||X))/2,t.tooltipPos=[g,t.plotY],t.dlBox={x:T,y:B,topWidth:S-Y,bottomWidth:R-T,height:Math.abs((0,a.pick)(_,X)-B),width:NaN},t.slice=h,t.half=W,t.isValid()&&(!o||!1!==t.visible)&&(k+=j)}(0,a.fireEvent)(e,"afterTranslate")}sortByAngle(t){t.sort((t,e)=>t.plotY-e.plotY)}}function y(){for(let t of this.series){let e=t.options&&t.options.dataLabels;(0,a.isArray)(e)&&(e=e[0]),t.is("pie")&&t.placeDataLabels&&e&&!e.inside&&t.placeDataLabels()}}x.defaultOptions=(0,a.merge)(c.defaultOptions,{animation:!1,borderRadius:0,center:["50%","50%"],width:"90%",neckWidth:"30%",height:"100%",neckHeight:"25%",reversed:!1,size:!0,dataLabels:{connectorWidth:1,verticalAlign:"middle"},states:{select:{color:"var(--highcharts-neutral-color-20)",borderColor:"var(--highcharts-neutral-color-100)"}}}),(0,a.extend)(x.prototype,{animate:h}),(x||(x={})).compose=function(t){(0,a.pushUnique)(n,"FunnelSeries")&&(0,a.addEvent)(t,"afterHideAllOverlappingLabels",y)},r().registerSeriesType("funnel",x);let b=x;class f extends b{}f.defaultOptions=(0,a.merge)(b.defaultOptions,{neckHeight:"0%",neckWidth:"0%",reversed:!0}),r().registerSeriesType("pyramid",f);let L=i();b.compose(L.Chart);let m=i();export{m as default};