/**
 * Highcharts JS v13.0.0 (2026-06-11)
 * @module highcharts/modules/parallel-coordinates
 * @requires highcharts
 *
 * Support for parallel coordinates in Highcharts
 *
 * (c) 2010-2026 Highsoft AS
 * Author: Paweł Fus
 *
 * A commercial license may be required depending on use,
 * see www.highcharts.com/license
 */import*as e from"../highcharts.js";var t,a,i,s={};s.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return s.d(t,{a:t}),t},s.d=(e,t)=>{for(var a in t)s.o(t,a)&&!s.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:t[a]})},s.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);let l=e.default;var o=s.n(l);let r={parallelCoordinates:!1,parallelAxes:{lineWidth:1,title:{text:"",reserveSpace:!1},labels:{x:0,y:4,align:"center",reserveSpace:!1},offset:0}},n={lineWidth:0,tickLength:0,opposite:!0,type:"category"};class h{constructor(e){this.axis=e}setPosition(e,t){let a=this.axis,i=a.chart,s=((this.position||0)+.5)/(i.parallelInfo.counter+1);i.polar?t.angle=360*s:(t[e[0]]=100*s+"%",a[e[1]]=t[e[1]]=0,a[e[2]]=t[e[2]]=null,a[e[3]]=t[e[3]]=null)}}!function(e){function t(e){let t=this.chart,a=this.parallelCoordinates,i=["left","width","height","top"];if(t.hasParallelCoordinates)if(t.inverted&&(i=i.reverse()),this.isXAxis)this.options=(0,l.merge)(this.options,n,e.userOptions);else{let s=t.yAxis.indexOf(this);this.options=(0,l.merge)(this.options,this.chart.options.chart.parallelAxes,e.userOptions),a.position=(0,l.pick)(a.position,s>=0?s:t.yAxis.length),a.setPosition(i,this.options)}}function a(e){let t=this.chart,a=this.parallelCoordinates;if(a&&t&&t.hasParallelCoordinates&&!this.isXAxis){let t=a.position,i=[];this.series.forEach(function(e){e.visible&&(0,l.isNumber)(t)&&(i=(e.pointArrayMap||["y"]).reduce((a,i)=>[...a,e.getColumn(i)?.[t]??null],i))}),i=i.filter(l.isNumber),this.dataMin=(0,l.arrayMin)(i),this.dataMax=(0,l.arrayMax)(i),e.preventDefault()}}function i(){this.parallelCoordinates||(this.parallelCoordinates=new h(this))}e.compose=function(e){e.keepProps.includes("parallel")||(e.keepProps.push("parallel"),(0,l.addEvent)(e,"init",i),(0,l.addEvent)(e,"afterSetOptions",t),(0,l.addEvent)(e,"getSeriesExtremes",a))}}(t||(t={}));let p=t,d=e.default.Templating;var c=s.n(d);let{composed:f}=o(),{format:u}=c();!function(e){function t(){let e=this.chart,t=this.points,a=t&&t.length,i=Number.MAX_VALUE,s,o;if(this.chart.hasParallelCoordinates){for(let r=0;r<a;r++)o=t[r],(0,l.defined)(o.y)?(e.polar?o.plotX=e.yAxis[r].angleRad||0:e.inverted?o.plotX=e.plotHeight-e.yAxis[r].top+e.plotTop:o.plotX=e.yAxis[r].left-e.plotLeft,o.clientX=o.plotX,o.plotY=e.yAxis[r].translate(o.y,!1,!0,void 0,!0),(0,l.isNumber)(o.high)&&(o.plotHigh=e.yAxis[r].translate(o.high,!1,!0,void 0,!0)),void 0!==s&&(i=Math.min(i,Math.abs(o.plotX-s))),s=o.plotX,o.isInside=e.isInsidePlot(o.plotX,o.plotY,{inverted:e.inverted})):o.isNull=!0;this.closestPointRangePx=i}}function a(e){let t=this.chart;if(t.hasParallelCoordinates){for(let e of t.axes)(0,l.insertItem)(this,e.series),e.isDirty=!0;this.xAxis=t.xAxis[0],this.yAxis=t.yAxis[0],e.preventDefault()}}function i(){let e=this.chart;if(e.hasParallelCoordinates)for(let t of e.axes||[])t&&t.series&&((0,l.erase)(t.series,this),t.isDirty=t.forceRedraw=!0)}function s(){let e=this.chart;if(e?.hasParallelCoordinates)for(let t of this.points){let a,i=e.yAxis[t.x||0],s=i.options,o=s.tooltipValueFormat??s.labels.format;a=o?u(o,(0,l.extend)(t,{value:t.y}),e):i.dateTime?e.time.dateFormat(e.time.resolveDTLFormat(s.dateTimeLabelFormats?.[i.tickPositions.info?.unitName||"year"]||"").main,t.y??void 0):(0,l.isArray)(s.categories)?s.categories[t.y??-1]:String(t.y??""),t.formattedValue=a}}e.compose=function(e){(0,l.pushUnique)(f,"ParallelSeries")&&((0,l.addEvent)(e,"afterTranslate",t,{order:1}),(0,l.addEvent)(e,"bindAxes",a),(0,l.addEvent)(e,"destroy",i),(0,l.addEvent)(e,"afterGeneratePoints",s))}}(a||(a={}));let x=a;class m{constructor(e){this.chart=e}setParallelInfo(e){let t=this.chart||this,a=e.series;for(let e of(t.parallelInfo={counter:0},a))e.data&&(t.parallelInfo.counter=Math.max(t.parallelInfo.counter,e.data.length-1))}}function y(e){let t=e.args[0],a=(0,l.splat)(t.yAxis||{}),i=[],s=a.length;if(this.hasParallelCoordinates=t.chart&&t.chart.parallelCoordinates,this.hasParallelCoordinates){for(this.setParallelInfo(t);s<=this.parallelInfo.counter;s++)i.push({});t.legend||(t.legend={}),t.legend&&void 0===t.legend.enabled&&(t.legend.enabled=!1),(0,l.merge)(!0,t,{boost:{seriesThreshold:Number.MAX_VALUE},plotOptions:{series:{boostThreshold:Number.MAX_VALUE}}}),t.yAxis=a.concat(i),t.xAxis=(0,l.merge)(n,(0,l.splat)(t.xAxis||{})[0])}}function g(e){let t=e.options;if(t.chart&&((0,l.defined)(t.chart.parallelCoordinates)&&(this.hasParallelCoordinates=t.chart.parallelCoordinates),this.options.chart.parallelAxes=(0,l.merge)(this.options.chart.parallelAxes,t.chart.parallelAxes)),this.hasParallelCoordinates)for(let e of(t.series&&this.setParallelInfo(t),this.yAxis))e.update({},!1)}(i||(i={})).compose=function(e,t,a,i){p.compose(e),x.compose(i);let s=m.prototype,o=t.prototype;o.setParallelInfo||(o.setParallelInfo=s.setParallelInfo,(0,l.addEvent)(t,"init",y),(0,l.addEvent)(t,"update",g),(0,l.merge)(!0,a.chart,r))};let A=i,v=o();A.compose(v.Axis,v.Chart,v.defaultOptions,v.Series);let P=o();export{P as default};