UNPKG

highcharts

Version:
14 lines 4.36 kB
/** * Highcharts JS v13.0.1 (2026-08-17) * @module highcharts/modules/solid-gauge * @requires highcharts * @requires highcharts/highcharts-more * * Solid angular gauge 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 e from"../highcharts.js";let t={};t.n=e=>{let o=e&&e.__esModule?()=>e.default:()=>e;return t.d(o,{a:o}),o},t.d=(e,o)=>{if(Array.isArray(o))for(var s=0;s<o.length;){var a=o[s++],r=o[s++];t.o(e,a)?0===r&&s++:0===r?Object.defineProperty(e,a,{enumerable:!0,value:o[s++]}):Object.defineProperty(e,a,{enumerable:!0,get:r})}else for(var a in o)t.o(o,a)&&!t.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:o[a]})},t.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);let o=e.default;var s,a,r=t.n(o);let{defaultOptions:i}=r(),{noop:l}=r(),n={radius:0,scope:"stack",where:void 0},d=e.default.SeriesRegistry;var h=t.n(d);let c=e.default.Color,{parse:p}=t.n(c)();(s=a||(a={})).initDataClasses=function(e){let t=this.chart,s=this.legendItem=this.legendItem||{},a=this.options,r=e.dataClasses||[],i,l,n=t.options.chart.colorCount,d=0,h;this.dataClasses=l=[],s.labels=[];for(let e=0,s=r.length;e<s;++e)i=r[e],i=(0,o.merge)(i),l.push(i),(t.styledMode||!i.color)&&("category"===a.dataClassColor?(t.styledMode||(n=(h=t.options.colors||[]).length,i.color=h[d]),i.colorIndex=d,++d===n&&(d=0)):i.color=p(a.minColor).tweenTo(p(a.maxColor),s<2?.5:e/(s-1)))},s.initStops=function(){let e=this.options,t=this.stops=e.stops||[[0,e.minColor||""],[1,e.maxColor||""]];for(let e=0,o=t.length;e<o;++e)t[e].color=p(t[e][1])},s.normalizedValue=function(e){let t=this.max||0,o=this.min||0;return this.logarithmic&&(e=this.logarithmic.log2lin(e)),1-(t-e)/(t-o||1)},s.toColor=function(e,t){let o,s,a,r,i,l,n=this.dataClasses,d=this.stops;if(n){for(l=n.length;l--;)if(s=(i=n[l]).from,a=i.to,(void 0===s||e>=s)&&(void 0===a||e<=a)){r=i.color,t&&(t.dataClass=l,t.colorIndex=i.colorIndex);break}}else{for(o=this.normalizedValue(e),l=d.length;l--&&!(o>d[l][0]););s=d[l]||d[l+1],o=1-((a=d[l+1]||s)[0]-o)/(a[0]-s[0]||1),r=s.color.tweenTo(a.color,o)}return r};let g=a,u=function(e){(0,o.extend)(e,g)},{gauge:m,pie:f}=h().seriesTypes;class y extends m{translate(){let e=this.yAxis;u(e),!e.dataClasses&&e.options.dataClasses&&e.initDataClasses(e.options),e.initStops(),m.prototype.translate.call(this)}drawPoints(){var e;let t,s=this.yAxis,a=s.center,r=this.options,i=this.chart.renderer,l=r.overshoot,d=r.rounded,h=(e=d?"50%":r.borderRadius??s.pane.options.borderRadius,!(0,o.isObject)(e)&&(e={radius:e||0}),(0,o.merge)(n,void 0,e)).radius,c=(0,o.isNumber)(l)?l/180*Math.PI:0;for(let e of((0,o.isNumber)(r.threshold)&&(t=s.startAngleRad+s.translate(r.threshold,void 0,void 0,void 0,!0)),this.thresholdAngleRad=(0,o.pick)(t,s.startAngleRad),this.points))if(!e.isNull){let t=s.pane.options.innerSize,l=(0,o.relativeLength)(e.options.radius??r.radius??"100%",a[2]/2),n=Math.min((0,o.relativeLength)(e.options.innerRadius??r.innerRadius??((0,o.isNumber)(t)?t/2:t)??0,a[2]/2),l),p=Math.min(s.startAngleRad,s.endAngleRad),g=Math.max(s.startAngleRad,s.endAngleRad),u={},m=e.graphic,f=s.startAngleRad+s.translate(e.y,void 0,void 0,void 0,!0),y,v,C=s.toColor(e.y,e),A=e.getClassName();"none"===C&&(C=e.color||this.color||"none"),"none"!==C&&(e.color=C),f=(0,o.clamp)(f,p-c,g+c),!1===r.wrap&&(f=(0,o.clamp)(f,p,g));let R=d?(l-n)/2/l:0,b=Math.min(f,this.thresholdAngleRad)-R,x=Math.max(f,this.thresholdAngleRad)+R;x-b>2*Math.PI&&(x=b+2*Math.PI),e.shapeArgs=y={x:a[0],y:a[1],r:l,innerR:n,start:b,end:x,borderRadius:h},e.startR=l,"none"!==C&&(u.fill=C),m?(v=y.d,m.animate((0,o.extend)(u,y)),v&&(y.d=v)):(u["sweep-flag"]=0,e.graphic=m=i.arc(y).attr(u).add(this.group)),i.styledMode?this.yAxis?.stops&&(A=A.replace(/highcharts-color-\d/gm,"").trim()):("square"!==r.linecap&&m.attr({"stroke-linecap":"round","stroke-linejoin":"round"}),m.attr({stroke:r.borderColor||"none","stroke-width":r.borderWidth||0})),m&&m.addClass(A);let M=n+(l-n)*.5;e.tooltipPos=[a[0]+Math.cos(f)*M,a[1]+Math.sin(f)*M]}}animate(e){e||(this.startAngleRad=this.thresholdAngleRad,f.prototype.animate.call(this,e))}}y.defaultOptions=(0,o.merge)(m.defaultOptions,{colorByPoint:!0,dataLabels:{verticalAlign:"middle",y:0}}),h().registerSeriesType("solidgauge",y);let v=r();export{v as default};