UNPKG

highcharts

Version:
11 lines 11.2 kB
!/** * Highcharts JS v12.6.0 (2026-04-13) * @module highcharts/modules/series-label * @requires highcharts * * (c) 2009-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.Templating):"function"==typeof define&&define.amd?define("highcharts/modules/series-label",["highcharts/highcharts"],function(t){return e(t,t.Templating)}):"object"==typeof exports?exports["highcharts/modules/series-label"]=e(t._Highcharts,t._Highcharts.Templating):t.Highcharts=e(t.Highcharts,t.Highcharts.Templating)}("u"<typeof window?this:window,(t,e)=>(()=>{"use strict";var r={944:e=>{e.exports=t},984:t=>{t.exports=e}},o={};function n(t){var e=o[t];if(void 0!==e)return e.exports;var i=o[t]={exports:{}};return r[t](i,i.exports,n),i.exports}n.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return n.d(e,{a:e}),e},n.d=(t,e)=>{for(var r in e)n.o(e,r)&&!n.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var i={};n.d(i,{default:()=>L});var a=n(944),h=n.n(a),l=n(984),s=n.n(l);let c={enabled:!0,connectorAllowed:!1,connectorNeighbourDistance:24,format:void 0,formatter:void 0,minFontSize:null,maxFontSize:null,onArea:null,style:{fontSize:"0.8em",fontWeight:"bold"},useHTML:!1,boxesToAvoid:[]};function p(t,e,r,o,n,i){let a=(i-e)*(r-t)-(o-e)*(n-t);return a>0||!(a<0)}function f(t,e,r,o,n,i,a,h){return p(t,e,n,i,a,h)!==p(r,o,n,i,a,h)&&p(t,e,r,o,n,i)!==p(t,e,r,o,a,h)}let{doc:u,win:d}=h();function x(t,e,r,o={}){let n="function"==typeof t&&t.prototype||t;Object.hasOwnProperty.call(n,"hcEvents")||(n.hcEvents={});let i=n.hcEvents;h().Point&&t instanceof h().Point&&t.series&&t.series.chart&&(t.series.chart.runTrackerClick=!0);let a=t.addEventListener;a&&a.call(t,e,r,!!h().supportsPassiveEvents&&{passive:void 0===o.passive?-1!==e.indexOf("touch"):o.passive,capture:!1}),i[e]||(i[e]=[]);let l={fn:r,order:"number"==typeof o.order?o.order:1/0};return i[e].push(l),i[e].sort((t,e)=>t.order-e.order),function(){!function(t,e,r){function o(e,r){let o=t.removeEventListener;o&&o.call(t,e,r,!1)}function n(r){let n,i;if(t.nodeName){e?(n={})[e]=!0:n=r;var a=n,h=function(t,e){if(r[e])for(i=r[e].length;i--;)o(e,r[e][i].fn)};for(let t in a)Object.hasOwnProperty.call(a,t)&&h.call(a[t],a[t],t,a)}}let i="function"==typeof t&&t.prototype||t;if(Object.hasOwnProperty.call(i,"hcEvents")){let t=i.hcEvents;if(e){let i=t[e]||[];r?(t[e]=i.filter(function(t){return r!==t.fn}),o(e,r)):(n(t),t[e]=[])}else n(t),delete i.hcEvents}}(t,e,r)}}function g(t,e){let r;for(r in t||(t={}),e)t[r]=e[r];return t}function b(t){return"number"==typeof t&&!isNaN(t)&&t<1/0&&t>-1/0}function m(){let t=arguments,e=t.length;for(let r=0;r<e;r++){let e=t[r];if(null!=e)return e}}Array.prototype.find;let{animObject:y}=h(),{format:v}=s(),{setOptions:w}=h(),{composed:X}=h(),{boxIntersectLine:M,intersectRect:A}={boxIntersectLine:function(t,e,r,o,n,i,a,h){return f(t,e,t+r,e,n,i,a,h)||f(t+r,e,t+r,e+o,n,i,a,h)||f(t,e+o,t+r,e+o,n,i,a,h)||f(t,e,t,e+o,n,i,a,h)},intersectRect:function(t,e){return!(e.left>t.right||e.right<t.left||e.top>t.bottom||e.bottom<t.top)}};function Y(t,e,r,o,n){let i=t.chart,a=t.options.label||{},h=m(a.onArea,!!t.area),l=h||a.connectorAllowed,s=i.boxesToAvoid,c=Number.MAX_VALUE,p=Number.MAX_VALUE,f,u,d,x,g,b,y;for(b=0;s&&b<s.length;b+=1)if(A(s[b],{left:e,right:e+o.width,top:r,bottom:r+o.height}))return!1;for(b=0;b<i.series.length;b+=1){let s=i.series[b],m=s.interpolatedPoints&&[...s.interpolatedPoints];if(s.visible&&m){let b=i.plotHeight/10;for(let t=i.plotTop;t<=i.plotTop+i.plotHeight;t+=b)m.unshift({chartX:i.plotLeft,chartY:t}),m.push({chartX:i.plotLeft+i.plotWidth,chartY:t});for(y=1;y<m.length;y+=1){if(m[y].chartX>=e-16&&m[y-1].chartX<=e+o.width+16){if(M(e,r,o.width,o.height,m[y-1].chartX,m[y-1].chartY,m[y].chartX,m[y].chartY))return!1;t===s&&!d&&n&&(d=M(e-16,r-16,o.width+32,o.height+32,m[y-1].chartX,m[y-1].chartY,m[y].chartX,m[y].chartY))}(l||d)&&(t!==s||h)&&(c=Math.min(c,(x=e+o.width/2-m[y].chartX)*x+(g=r+o.height/2-m[y].chartY)*g))}if(!h&&l&&t===s&&(n&&!d||c<Math.pow(a.connectorNeighbourDistance||1,2))){for(y=1;y<m.length;y+=1)(f=Math.min(Math.pow(e+o.width/2-m[y].chartX,2)+Math.pow(r+o.height/2-m[y].chartY,2),Math.pow(e-m[y].chartX,2)+Math.pow(r-m[y].chartY,2),Math.pow(e+o.width-m[y].chartX,2)+Math.pow(r-m[y].chartY,2),Math.pow(e+o.width-m[y].chartX,2)+Math.pow(r+o.height-m[y].chartY,2),Math.pow(e-m[y].chartX,2)+Math.pow(r+o.height-m[y].chartY,2)))<p&&(p=f,u=m[y]);d=!0}}}return(!n||!!d)&&{x:e,y:r,weight:c-(u?p:0),connectorPoint:u}}function E(t){if(this.renderer){var e,r,o;let n=this,i=y(n.renderer.globalAnimation).duration;n.labelSeries=[],n.labelSeriesMaxSum=0,n.seriesLabelTimer&&null!=(e=n.seriesLabelTimer)&&clearTimeout(e),n.series.forEach(function(e){let r=e.options.label||{},o=e.labelBySeries,a=o&&o.closest,h=e.getColumn("y");r.enabled&&e.visible&&(e.graph||e.area)&&!e.boosted&&n.labelSeries&&(n.labelSeries.push(e),r.minFontSize&&r.maxFontSize&&h.length&&(e.sum=h.reduce((t,e)=>(t||0)+(e||0),0),n.labelSeriesMaxSum=Math.max(n.labelSeriesMaxSum||0,e.sum||0)),"load"===t.type&&(i=Math.max(i,y(e.options.animation).duration)),a&&(void 0!==a[0].plotX?o.animate({x:a[0].plotX+a[1],y:a[0].plotY+a[2]}):o.attr({opacity:0})))}),r=function(){let t,e;n.series&&n.labelSeries&&(n.boxesToAvoid=[],t=n.labelSeries||[],e=n.boxesToAvoid,n.series.forEach(t=>(t.points||[]).forEach(r=>(r.dataLabels||[]).forEach(r=>{let{width:o,height:n}=r.getBBox(),i=(r.translateX||0)+(t.xAxis?t.xAxis.pos:t.chart.plotLeft),a=(r.translateY||0)+(t.yAxis?t.yAxis.pos:t.chart.plotTop);e.push({left:i,top:a,right:i+o,bottom:a+n})}))),t.forEach(function(t){let r=t.options.label||{};t.interpolatedPoints=function(t){let e,r,o,n,i;if(!t.xAxis&&!t.yAxis)return;let a=t.points,h=[],l=t.graph||t.area,s=l&&l.element,c=t.chart.inverted,p=t.xAxis,f=t.yAxis,u=c?f.pos:p.pos,d=c?p.pos:f.pos,x=c?p.len:f.len,g=c?f.len:p.len,y=m((t.options.label||{}).onArea,!!t.area),v=f.getThreshold(t.options.threshold),w={},X=c?"chartCenterX":"chartCenterY";function M(t){let e=Math.round((t.plotX||0)/8)+","+Math.round((t.plotY||0)/8);w[e]||(w[e]=1,h.push(t))}if(t.getPointSpline&&s&&s.getPointAtLength&&!y&&a.length<(t.chart.plotSizeX||0)/16){let t=l.toD&&l.attr("d");for(l.toD&&l.attr({d:l.toD}),o=s.getTotalLength(),e=0;e<o;e+=16){let t=s.getPointAtLength(e),r=c?g-t.y:t.x,o=c?x-t.x:t.y;M({chartX:u+r,chartY:d+o,plotX:r,plotY:o})}t&&l.attr({d:t});let r=a[a.length-1].pos();M({chartX:u+(r?.[0]||0),chartY:d+(r?.[1]||0)})}else{let t;for(e=0,o=a.length;e<o;e+=1){let o=a[e],[h,l]=o.pos()||[],{plotHigh:s}=o;if(b(h)&&b(l)){let e={plotX:h,plotY:l,chartX:u+h,chartY:d+l};if(y&&(s&&(e.plotY=s,e.chartY=d+s),c?e.chartCenterX=u+g-((s||o.plotY||0)+m(o.yBottom,v))/2:e.chartCenterY=d+((s||l)+m(o.yBottom,v))/2),t&&(r=Math.max(Math.abs(e.chartX-t.chartX),Math.abs(e.chartY-t.chartY)))>16&&r<999)for(i=1,n=Math.ceil(r/16);i<n;i+=1)M({chartX:t.chartX+(e.chartX-t.chartX)*(i/n),chartY:t.chartY+(e.chartY-t.chartY)*(i/n),[X]:(t[X]||0)+((e[X]||0)-(t[X]||0))*(i/n),plotX:(t.plotX||0)+(h-(t.plotX||0))*(i/n),plotY:(t.plotY||0)+(l-(t.plotY||0))*(i/n)});M(e),t=e}}}return h}(t),e.push(...r.boxesToAvoid||[])}),n.series.forEach(function(t){let e=t.options.label;if(!e||!t.xAxis&&!t.yAxis)return;let r="highcharts-color-"+m(t.colorIndex,"none"),o=!t.labelBySeries,i=e.minFontSize,a=e.maxFontSize,h=n.inverted,l=h?t.yAxis.pos:t.xAxis.pos,s=h?t.xAxis.pos:t.yAxis.pos,c=n.inverted?t.yAxis.len:t.xAxis.len,p=n.inverted?t.xAxis.len:t.yAxis.len,f=t.interpolatedPoints,u=m(e.onArea,!!t.area),d=[],x=t.getColumn("x"),b,w,X,M,A,E,S=t.labelBySeries,P,L,T;function O(t,e,r){let o=Math.max(l,m(L,-1/0)),n=Math.min(l+c,m(T,1/0));return t>o&&t<=n-r.width&&e>=s&&e<=s+p-r.height}function B(){S&&(t.labelBySeries=S.destroy())}if(u&&!h&&(P=[t.xAxis.toPixels(x[0]),t.xAxis.toPixels(x[x.length-1])],L=Math.min.apply(Math,P),T=Math.max.apply(Math,P)),t.visible&&!t.boosted&&f){if(!S){var C,H,j;let o=t.name;if("string"==typeof e.format?o=v(e.format,t,n):e.formatter&&(o=e.formatter.call(t,t)),t.labelBySeries=S=n.renderer.label(o,0,0,"connector",0,0,e.useHTML).addClass("highcharts-series-label highcharts-series-label-"+t.index+" "+(t.options.className||"")+" "+r),!n.renderer.styledMode){let r="string"==typeof t.color?t.color:"#666666";S.css(g({color:u?n.renderer.getContrast(r):r},e.style||{})),S.attr({opacity:+!!n.renderer.forExport,stroke:t.color,"stroke-width":1})}i&&a&&S.css({fontSize:(C=t,H=i,j=a,H+(C.sum||0)/(C.chart.labelSeriesMaxSum||0)*(j-H)+"px")}),S.attr({padding:0,zIndex:3}).add()}for((b=S.getBBox()).width=Math.round(b.width),A=f.length-1;A>0;A-=1)u?O(w=(f[A].chartCenterX??f[A].chartX)-b.width/2,X=(f[A].chartCenterY??f[A].chartY)-b.height/2,b)&&(E=Y(t,w,X,b)):(O(w=f[A].chartX+3,X=f[A].chartY-b.height-3,b)&&(E=Y(t,w,X,b,!0)),E&&d.push(E),O(w=f[A].chartX+3,X=f[A].chartY+3,b)&&(E=Y(t,w,X,b,!0)),E&&d.push(E),O(w=f[A].chartX-b.width-3,X=f[A].chartY+3,b)&&(E=Y(t,w,X,b,!0)),E&&d.push(E),O(w=f[A].chartX-b.width-3,X=f[A].chartY-b.height-3,b)&&(E=Y(t,w,X,b,!0))),E&&d.push(E);if(e.connectorAllowed&&!d.length&&!u)for(w=l+c-b.width;w>=l;w-=16)for(X=s;X<s+p-b.height;X+=16)(M=Y(t,w,X,b,!0))&&d.push(M);if(d.length){d.sort((t,e)=>e.weight-t.weight),E=d[0],(n.boxesToAvoid||[]).push({left:E.x,right:E.x+b.width,top:E.y,bottom:E.y+b.height});let e=Math.sqrt(Math.pow(Math.abs(E.x-(S.x||0)),2)+Math.pow(Math.abs(E.y-(S.y||0)),2));if(e&&t.labelBySeries){let r,i={opacity:+!!n.renderer.forExport,x:E.x,y:E.y},a={opacity:1};e<=10&&(a={x:i.x,y:i.y},i={}),o&&(r=y(t.options.animation),r.duration*=.2),t.labelBySeries.attr(g(i,{anchorX:E.connectorPoint&&(E.connectorPoint.plotX||0)+l,anchorY:E.connectorPoint&&(E.connectorPoint.plotY||0)+s})).animate(a,r),t.options.kdNow=!0,t.buildKDTree();let h=t.searchPoint({chartX:E.x,chartY:E.y},!0);h&&(S.closest=[h,E.x-(h.plotX||0),E.y-(h.plotY||0)])}}else B()}else B()}),function(t,e,r,o){if(r=r||{},u?.createEvent&&(t.dispatchEvent||t.fireEvent&&t!==h())){let o=u.createEvent("Events");o.initEvent(e,!0,!0),r=g(o,r),t.dispatchEvent?t.dispatchEvent(r):t.fireEvent(e,r)}else if(t.hcEvents){r.target||g(r,{preventDefault:function(){r.defaultPrevented=!0},target:t,type:e});let o=[],n=t,i=!1;for(;n.hcEvents;)Object.hasOwnProperty.call(n,"hcEvents")&&n.hcEvents[e]&&(o.length&&(i=!0),o.unshift.apply(o,n.hcEvents[e])),n=Object.getPrototypeOf(n);i&&o.sort((t,e)=>t.order-e.order),o.forEach(e=>{!1===e.fn.call(t,r,t)&&r.preventDefault()})}}(n,"afterDrawSeriesLabels"))},n.seriesLabelTimer=(o=n.renderer.forExport||!i?0:i)>0?setTimeout(r,o,void 0):(r.call(0,void 0),-1)}}function S(t,e,r,o,n){let i=n&&n.anchorX,a=n&&n.anchorY,h,l,s=r/2;return b(i)&&b(a)&&(h=[["M",i,a]],(l=e-a)<0&&(l=-o-l),l<r&&(s=i<t+r/2?l:r-l),a>e+o?h.push(["L",t+s,e+o]):a<e?h.push(["L",t+s,e]):i<t?h.push(["L",t,e+o/2]):i>t+r&&h.push(["L",t+r,e+o/2])),h||[]}let P=h();({compose:function(t,e){var r;r="SeriesLabel",0>X.indexOf(r)&&X.push(r)&&(x(t,"load",E),x(t,"redraw",E),e.prototype.symbols.connector=S,w({plotOptions:{series:{label:c}}}))}}).compose(P.Chart,P.SVGRenderer);let L=h();return i.default})());