highcharts
Version:
JavaScript charting framework
13 lines • 6.72 kB
JavaScript
!/**
* 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
*/function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(t._Highcharts,t._Highcharts.SeriesRegistry):"function"==typeof define&&define.amd?define("highcharts/modules/funnel",["highcharts/highcharts"],function(t){return e(t,t.SeriesRegistry)}):"object"==typeof exports?exports["highcharts/modules/funnel"]=e(t._Highcharts,t._Highcharts.SeriesRegistry):t.Highcharts=e(t.Highcharts,t.Highcharts.SeriesRegistry)}("u"<typeof window?this:window,(t,e)=>(()=>{"use strict";var i={512(t){t.exports=e},944(e){e.exports=t}};let a={};function s(t){let e=a[t];if(void 0!==e)return e.exports;let r=a[t]={exports:{}};return i[t](r,r.exports,s),r.exports}s.n=t=>{let e=t&&t.__esModule?()=>t.default:()=>t;return s.d(e,{a:e}),e},s.d=(t,e)=>{if(Array.isArray(e))for(var i=0;i<e.length;){var a=e[i++],r=e[i++];s.o(t,a)?0===r&&i++:0===r?Object.defineProperty(t,a,{enumerable:!0,value:e[i++]}):Object.defineProperty(t,a,{enumerable:!0,get:r})}else for(var a in e)s.o(e,a)&&!s.o(t,a)&&Object.defineProperty(t,a,{enumerable:!0,get:e[a]})},s.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);let r={};s.d(r,{default:()=>W});var d=s(944),o=s.n(d);let{defaultOptions:n}=o(),{noop:l}=o(),h={radius:0,scope:"stack",where:void 0};var p=s(512),c=s.n(p);let{composed:g,noop:u}=o(),{column:x,pie:y}=c().seriesTypes,f=c().series.prototype.alignDataLabel;function b(t,e){return/%$/.test(t)?e*parseInt(t,10)/100:parseInt(t,10)}class L extends y{alignDataLabel(t,e,i,a,s){let r=t.series,o=r.options.reversed,n=t.dlBox||t.shapeArgs,{align:l,verticalAlign:h}=i,p=(0,d.splat)(i.padding||0),c=((r.options||{}).dataLabels||{}).inside,g=r.center[1],u=t.plotY||0,x=e.height??e.getBBox().height,y=r.getWidthAt((o?2*g-u:u)-n.height/2+x),b="middle"===h?(n.topWidth-n.bottomWidth)/4:(y-n.bottomWidth)/2,L=n.y,m=n.x;"middle"===h?L=n.y-n.height/2+x/2:"top"===h&&(L=n.y-n.height+x+p[0]),("top"===h&&!o||"bottom"===h&&o||"middle"===h)&&("right"===l?m=n.x-p[1%p.length]+b:"left"===l&&(m=n.x+p[3%p.length]-b)),a={x:m,y:o?L-n.height:L,width:n.bottomWidth,height:n.height},i.verticalAlign="bottom",c&&(i.distance=void 0),c&&t.visible&&f.call(r,t,e,i,a,s),c&&(!t.visible&&t.dataLabel&&(t.dataLabel.placed=!1),t.contrastColor&&e.css({color:t.contrastColor}))}drawDataLabels(){((0,d.splat)(this.options.dataLabels||{})[0].inside?x:y).prototype.drawDataLabels.call(this)}getDataLabelPosition(t,e){let i=t.plotY||0,a=t.half?1:-1,s=this.getXPos(i,!!t.half,t);return{distance:e,natural:{x:0,y:i},computed:{},alignment:t.half?"right":"left",connectorPosition:{breakAt:{x:s+(e-5)*a,y:i},touchingSliceAt:{x:s+e*a,y:i}}}}translate(){var t;let e=this,i=e.chart,a=e.options,s=a.reversed,r=a.ignoreHiddenPoint,o=(t=a.borderRadius,(0,d.isObject)(t)||(t={radius:t||0}),(0,d.merge)(h,void 0,t)),n=i.plotWidth,l=i.plotHeight,p=a.center,c=b(p[0],n),g=b(p[1],l),x=b(a.width,n),y=b(a.height,l),f=b(a.neckWidth,n),L=b(a.neckHeight,l),m=g-y/2+y-L,v=e.points,M=(0,d.relativeLength)(o.radius,x),A=o.scope,W=+("left"===a.dataLabels.position),P=(t,e)=>{let i=Math.tan(t/2),a=Math.cos(D),r=Math.sin(D),d=M,o=d/i,n=Math.tan((Math.PI-t)/3.2104);return o>e&&(d=(o=e)*i),{dx:[o*a,(o-(n*=d))*a,o-n,o],dy:[o*r,(o-n)*r,o-n,o].map(t=>s?-t:t)}},C=0,H=0,k=-1,w=-1,O,j,S,D,I,R,Y,_,B,T,X;for(let t of(e.getWidthAt=function(t){let e=g-y/2;return t>m||y===L?f:f+(x-f)*(1-(t-e)/(y-L))},e.getXPos=function(t,i,a){return c+(i?-1:1)*(e.getWidthAt(s?2*g-t:t)/2+(a.dataLabel?.dataLabelPosition?.distance??(0,d.relativeLength)(this.options.dataLabels?.distance||0,x)))},e.center=[c,g,y],e.centerX=c,v))t.y&&t.isValid()&&(!r||!1!==t.visible)&&(C+=t.y,-1===k&&(k=t.index),w=t.index);for(let t of v){if(X=null,S=C?t.y/C:0,B=(R=g-y/2+H*y)+S*y,Y=(I=c-(O=e.getWidthAt(R))/2)+O,T=(_=c-(O=e.getWidthAt(B))/2)+O,(0,d.correctFloat)(R)>=m?(I=_=c-f/2,Y=T=c+f/2):B>m&&(X=B,T=(_=c-(O=e.getWidthAt(m))/2)+O,B=m),s&&(R=2*g-R,B=2*g-B,null!==X&&(X=2*g-X)),M&&("point"===A||t.index===k||t.index===w||null!==X)){let e=Math.abs(B-R),i=Y-T,a=T-_,s=Math.sqrt(i*i+e*e),r=Y-I,d=P(D=Math.atan(0!==i?e/i:1/0),Math.min(r,s)/2);if(j="stack"===A&&t.index!==k?[["M",I,R],["L",Y,R]]:[["M",I+d.dx[0],R+d.dy[0]],["C",I+d.dx[1],R+d.dy[1],I+d.dx[2],R,I+d.dx[3],R],["L",Y-d.dx[3],R],["C",Y-d.dx[2],R,Y-d.dx[1],R+d.dy[1],Y-d.dx[0],R+d.dy[0]]],null!==X){let e=Math.abs(X-B),i=P(Math.PI/2,Math.min(a,e)/2);d=P(Math.PI/2+D,Math.min(s,e)/2),j.push(["L",T+d.dx[0],B-d.dy[0]],["C",T+d.dx[1],B-d.dy[1],T,B+d.dy[2],T,B+d.dy[3]]),"stack"===A&&t.index!==w?j.push(["L",T,X],["L",_,X]):j.push(["L",T,X-i.dy[3]],["C",T,X-i.dy[2],T-i.dx[2],X,T-i.dx[3],X],["L",_+i.dx[3],X],["C",_+i.dx[2],X,_,X-i.dy[2],_,X-i.dy[3]]),j.push(["L",_,B+d.dy[3]],["C",_,B+d.dy[2],_-d.dx[1],B-d.dy[1],_-d.dx[0],B-d.dy[0]])}else a>=1?(d=P(Math.PI-D,Math.min(s,a)/2),"stack"===A&&t.index!==w?j.push(["L",T,B],["L",_,B]):j.push(["L",T+d.dx[0],B-d.dy[0]],["C",T+d.dx[1],B-d.dy[1],T-d.dx[2],B,T-d.dx[3],B],["L",_+d.dx[3],B],["C",_+d.dx[2],B,_-d.dx[1],B-d.dy[1],_-d.dx[0],B-d.dy[0]])):(d=P(Math.PI-2*D,s/2),j.push(["L",_+d.dx[0],B-d.dy[0]],["C",_+d.dx[1],B-d.dy[1],_-d.dx[1],B-d.dy[1],_-d.dx[0],B-d.dy[0]]))}else j=[["M",I,R],["L",Y,R],["L",T,B]],null!==X&&j.push(["L",T,X],["L",_,X]),j.push(["L",_,B]);j.push(["Z"]),t.shapeType="path",t.shapeArgs={d:j},t.percentage=100*S,t.plotX=c,t.plotY=(R+(X||B))/2,t.tooltipPos=[c,t.plotY],t.dlBox={x:_,y:R,topWidth:Y-I,bottomWidth:T-_,height:Math.abs((0,d.pick)(X,B)-R),width:NaN},t.slice=u,t.half=W,t.isValid()&&(!r||!1!==t.visible)&&(H+=S)}(0,d.fireEvent)(e,"afterTranslate")}sortByAngle(t){t.sort((t,e)=>t.plotY-e.plotY)}}function m(){for(let t of this.series){let e=t.options&&t.options.dataLabels;(0,d.isArray)(e)&&(e=e[0]),t.is("pie")&&t.placeDataLabels&&e&&!e.inside&&t.placeDataLabels()}}L.defaultOptions=(0,d.merge)(y.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,d.extend)(L.prototype,{animate:u}),(L||(L={})).compose=function(t){(0,d.pushUnique)(g,"FunnelSeries")&&(0,d.addEvent)(t,"afterHideAllOverlappingLabels",m)},c().registerSeriesType("funnel",L);let v=L;class M extends v{}M.defaultOptions=(0,d.merge)(v.defaultOptions,{neckHeight:"0%",neckWidth:"0%",reversed:!0}),c().registerSeriesType("pyramid",M);let A=o();v.compose(A.Chart);let W=o();return r.default})());