highcharts
Version:
JavaScript charting framework
9 lines • 5.71 kB
JavaScript
/**
* Highcharts JS v12.3.0 (2025-06-21)
* @module highcharts/modules/dumbbell
* @requires highcharts
*
* (c) 2009-2025 Sebastian Bochan, Rafal Sebestjanski
*
* License: www.highcharts.com/license
*/import*as t from"../highcharts.js";var o={};o.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return o.d(e,{a:e}),e},o.d=(t,e)=>{for(var i in e)o.o(e,i)&&!o.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},o.o=(t,o)=>Object.prototype.hasOwnProperty.call(t,o);let e=t.default;var i=o.n(e);let r=t.default.SeriesRegistry;var s=o.n(r);let{area:{prototype:{pointClass:l,pointClass:{prototype:h}}}}=s().seriesTypes,{defined:a,isNumber:p}=i(),n=class extends l{setState(){let t=this.state,o=this.series,e=o.chart.polar;a(this.plotHigh)||(this.plotHigh=o.yAxis.toPixels(this.high,!0)),a(this.plotLow)||(this.plotLow=this.plotY=o.yAxis.toPixels(this.low,!0)),o.lowerStateMarkerGraphic=o.stateMarkerGraphic,o.stateMarkerGraphic=o.upperStateMarkerGraphic,this.graphic=this.graphics&&this.graphics[1],this.plotY=this.plotHigh,e&&p(this.plotHighX)&&(this.plotX=this.plotHighX),h.setState.apply(this,arguments),this.state=t,this.plotY=this.plotLow,this.graphic=this.graphics&&this.graphics[0],e&&p(this.plotLowX)&&(this.plotX=this.plotLowX),o.upperStateMarkerGraphic=o.stateMarkerGraphic,o.stateMarkerGraphic=o.lowerStateMarkerGraphic,o.lowerStateMarkerGraphic=void 0;let i=o.modifyMarkerSettings();h.setState.apply(this,arguments),o.restoreMarkerSettings(i)}haloPath(){let t=this.series.chart.polar,o=[];return this.plotY=this.plotLow,t&&p(this.plotLowX)&&(this.plotX=this.plotLowX),this.isInside&&(o=h.haloPath.apply(this,arguments)),this.plotY=this.plotHigh,t&&p(this.plotHighX)&&(this.plotX=this.plotHighX),this.isTopInside&&(o=o.concat(h.haloPath.apply(this,arguments))),o}isValid(){return p(this.low)&&p(this.high)}},{extend:c,pick:d}=i();class g extends n{setState(){let t=this.series,o=t.chart,e=t.options.lowColor,i=t.options.marker,r=t.options.lowMarker,s=this.options,l=s.lowColor,h=this.zone&&this.zone.color,a=d(l,r?.fillColor,e,s.color,h,this.color,t.color),p="attr",n,g;if(this.pointSetState.apply(this,arguments),!this.state){p="animate";let[t,e]=this.graphics||[];t&&!o.styledMode&&(t.attr({fill:a}),e&&(g={y:this.y,zone:this.zone},this.y=this.high,this.zone=this.zone?this.getZone():void 0,n=d(this.marker?this.marker.fillColor:void 0,i?i.fillColor:void 0,s.color,this.zone?this.zone.color:void 0,this.color),e.attr({fill:n}),c(this,g)))}this.connector?.[p](t.getConnectorAttribs(this))}destroy(){return this.graphic||(this.graphic=this.connector,this.connector=void 0),super.destroy()}}c(g.prototype,{pointSetState:n.prototype.setState});let y=t.default.SVGRenderer;var u=o.n(y);let{noop:w}=i(),{arearange:C,column:f,columnrange:k}=s().seriesTypes,{extend:m,merge:S,pick:M}=i();class v extends C{getConnectorAttribs(t){let o=this.chart,e=t.options,i=this.options,r=this.xAxis,s=this.yAxis,l=M(i.states&&i.states.hover&&i.states.hover.connectorWidthPlus,1),h=M(e.dashStyle,i.dashStyle),a=s.toPixels(i.threshold||0,!0),p=o.inverted?s.len-a:a,n=M(e.connectorWidth,i.connectorWidth),c=M(e.connectorColor,i.connectorColor,e.color,t.zone?t.zone.color:void 0,t.color),d=M(t.plotLow,t.plotY),g=M(t.plotHigh,p),y;if("number"!=typeof d)return{};t.state&&(n+=l),d<0?d=0:d>=s.len&&(d=s.len),g<0?g=0:g>=s.len&&(g=s.len),(t.plotX<0||t.plotX>r.len)&&(n=0),t.graphics&&t.graphics[1]&&(y={y:t.y,zone:t.zone},t.y=t.high,t.zone=t.zone?t.getZone():void 0,c=M(e.connectorColor,i.connectorColor,e.color,t.zone?t.zone.color:void 0,t.color),m(t,y));let w={d:u().prototype.crispLine([["M",t.plotX,d],["L",t.plotX,g]],n)};return!o.styledMode&&(w.stroke=c,w["stroke-width"]=n,h&&(w.dashstyle=h)),w}drawConnector(t){let o=M(this.options.animationLimit,250),e=t.connector&&this.chart.pointCount<o?"animate":"attr";t.connector||(t.connector=this.chart.renderer.path().addClass("highcharts-lollipop-stem").attr({zIndex:-1}).add(this.group)),t.connector[e](this.getConnectorAttribs(t))}getColumnMetrics(){let t=f.prototype.getColumnMetrics.apply(this,arguments);return t.offset+=t.width/2,t}translate(){let t=this.chart.inverted;for(let o of(this.setShapeArgs.apply(this),this.translatePoint.apply(this,arguments),this.points)){let{pointWidth:e,shapeArgs:i={},tooltipPos:r}=o;o.plotX=i.x||0,i.x=o.plotX-e/2,r&&(t?r[1]=this.xAxis.len-o.plotX:r[0]=o.plotX)}this.columnMetrics.offset-=this.columnMetrics.width/2}drawPoints(){let t=this.chart,o=this.points.length,e=this.lowColor=this.options.lowColor,i=this.options.lowMarker,r=0,s,l,h;for(this.seriesDrawPoints.apply(this,arguments);r<o;){let[o,a]=(l=this.points[r]).graphics||[];this.drawConnector(l),a&&(a.element.point=l,a.addClass("highcharts-lollipop-high")),l.connector&&(l.connector.element.point=l),o&&(h=l.zone&&l.zone.color,s=M(l.options.lowColor,i?.fillColor,e,l.options.color,h,l.color,this.color),t.styledMode||o.attr({fill:s}),o.addClass("highcharts-lollipop-low")),r++}}pointAttribs(t,o){let e=super.pointAttribs.apply(this,arguments);return"hover"===o&&delete e.fill,e}setShapeArgs(){f.prototype.translate.apply(this),k.prototype.afterColumnTranslate.apply(this)}}v.defaultOptions=S(C.defaultOptions,{trackByArea:!1,fillColor:"none",lineWidth:0,pointRange:1,connectorWidth:1,stickyTracking:!1,groupPadding:.2,crisp:!1,pointPadding:.1,legendSymbol:"rectangle",lowColor:"#333333",states:{hover:{lineWidthPlus:0,connectorWidthPlus:1,halo:!1}}}),m(v.prototype,{crispCol:f.prototype.crispCol,drawGraph:w,drawTracker:f.prototype.drawTracker,pointClass:g,seriesDrawPoints:C.prototype.drawPoints,trackerGroups:["group","markerGroup","dataLabelsGroup"],translatePoint:C.prototype.translate}),s().registerSeriesType("dumbbell",v);let X=i();export{X as default};